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

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

Susan Sarandon
リリース: 2024-10-27 21:24:30
オリジナル
303 人が閲覧しました

 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート