Sizeof String Literal
C では、 sizeof はデータ型または式のサイズを計算します。文字列リテラルに適用すると、sizeof は終端の null 文字 (' ') を含むリテラルの長さを計算します。
出力の理解
提供されたコードは次のように計算します。文字列リテラル、const char* const、および const char[] のサイズ。 GCC でコンパイルされた 32 ビット OS での出力は次のとおりです。
sizeof(string literal) = 2 sizeof(const char* const) = 4 sizeof(const char[]) = 2
sizeof が文字列リテラルの長さを計算する理由
sizeof("f") は次のように評価します。文字列リテラルは文字「f」と終端の null で構成されているため、2 に変更されます。 Character.
式の sizeof の型
注意: sizeof 内の配列
配列は sizeof に渡されたときにポインターに分解されないことに注意してください。したがって、sizeof(bar) はポインター サイズ (32 ビット OS では 4) の代わりに 2 を正しく返します。
以上がC で「sizeof」が文字列リテラル、ポインタ、配列に対して異なる値を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。