首頁 > 後端開發 > C++ > 主體

為什麼在使用 char 指標時'cout”列印字元而不是地址?

Mary-Kate Olsen
發布: 2024-11-04 04:52:02
原創
625 人瀏覽過

Why does `cout` print the character instead of the address when working with char pointers?

了解使用 cout 進行字元指標列印

處理 char 指標時,了解它們在不同環境中的處理方式至關重要。雖然帶有 %u 和 %s 轉換說明符的 print() 可以控制列印位址或字串,但在使用 cout 時會出現挑戰。

考慮以下程式碼片段:

<code class="cpp">char ch = 'a';
char *cptr = &ch;
cout << cptr << endl;
登入後複製

這裡,所需的輸出是 cptr 中儲存的 ch 的位址。然而,預設情況下,cout 傾向於將 cptr 視為常規字串並列印字元“a”而不是其位址。

解決列印困境

要修正此問題,我們需要強制 cout 將 cptr 解釋為 void 指標而不是 char 指標。這使我們能夠利用專門處理 void 指標並列印其位址的 ostream& 運算子。

為了實現這一點,我們可以使用如下的強制轉換:

<code class="cpp">cout << static_cast<void *>(cptr) << endl;</code>
登入後複製

透過將cptr 強制轉換為void 指針,重載決策選擇正確的運算符,從而產生所需的地址列印。

以上是為什麼在使用 char 指標時'cout”列印字元而不是地址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板