ホームページ  >  記事  >  バックエンド開発  >  C の文字列リテラルの真の型は何ですか?

C の文字列リテラルの真の型は何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 21:24:30214ブラウズ

 What is the True Type of a String Literal in C  ?

文字列リテラルの型の決定

多くのプログラマは、文字列リテラルの型を理解することに苦労しています。それは 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。