文字列リテラルの型の決定
多くのプログラマは、文字列リテラルの型を理解することに苦労しています。それは const char * (定数文字へのポインタ) ですか?それとも const char (定数文字) ですか?
答えは、 C での文字列リテラルの表現にあります。文字列リテラルが末尾に null 終端文字 (' ') を追加した文字の配列として格納される C とは異なり、C では文字列リテラルは基本的に const char[N] です。ここで、N は文字列の長さ (ヌル終端文字を含む) を示します。
本質的に、const char[N] と char const[N] は同等です。これは、文字列内の文字数 (埋め込まれた null 文字を含む) を正確に計算する sizeof("hello") - 1 を使用して、文字列リテラルの長さを確実に決定できることを意味します。文字列リテラルがポインターの場合、システム内のポインターのサイズから 1 を引いた値が常に返されるため、このアプローチは失敗します。
以上がC の文字列リテラルの真の型は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。