首頁 >後端開發 >C++ >`sizeof` 如何處理 C/C 中的字串文字?

`sizeof` 如何處理 C/C 中的字串文字?

Susan Sarandon
Susan Sarandon原創
2024-12-11 10:00:16506瀏覽

How Does `sizeof` Handle String Literals in C/C  ?

Sizeof 字串文字解釋

提供的程式碼片段突顯了 sizeof 運算子在不同字串文字下的行為。讓我們深入研究提出的問題的答案。

  1. 為什麼 sizeof 會計算字串文字的長度?

sizeof 運算子計算給定表達式所佔用的大小(以位元組為單位)。對於字串文字,它將傳回字元數,包括終止字元“ ”,該字元標記字串的結尾。在本例中,「f」有兩個字元('f' 和 ' '),因此 sizeof("f") 傳回 2。

  1. 當賦予 sizeof?

不,當賦予 sizeof 時,字串文字沒有不同的類型。它將其類型維護為常數字元數組。但是,需要注意的是,當字串文字傳遞給函數或在需要指標的表達式中使用時,它會自動衰減為字元指標。但是當傳遞給 sizeof 時,它保留其原始類型作為字元數組。

在這個例子中:

  • foo 是一個指向常數字元的常數指針,所以sizeof(foo ) 傳回指標的大小,在32 位元系統上通常為4 個字節。
  • bar 是常數字元數組,因此 sizeof(bar)傳回數組的大小,即 2 個位元組(一個用於 'b' 字符,一個用於 ' ' 字元)。

以上是`sizeof` 如何處理 C/C 中的字串文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn