文字列リテラルの型について混乱しています。 ですか、const char *
それとも ですかconst char
?
ベストアンサー1
それはconst char[N]
(同じこと)でありchar const[N]
、 はN
文字列の長さに終端の 1 を加えた長さですNUL
(または、「文字列の長さ」を を含めて定義した場合は、文字列の長さのみですNUL
)。
このため、sizeof("hello") - 1
文字列内の文字数 (埋め込まれたNUL
s を含む) を取得できます。ポインターの場合は、常にシステム上のポインターのサイズ (マイナス 1) になるため、これは機能しません。