C と C の文字サイズの違い
C と C の両方で、 sizeof 演算子はデータ型のサイズに関する情報を提供します。変数。この演算子を使用してプログラムの出力を調べることにより、プログラマは作業しているデータに関する重要な詳細を知ることができます。ただし、驚くべきことに、 sizeof 演算子を C と C の間の文字値に適用すると、異なる結果が得られます。
次の C プログラムを考えてみましょう:
#include <stdio.h> int main(void) { printf("sizeof(char) = %zu\n", sizeof(char)); printf("sizeof('a') = %zu\n", sizeof('a')); }
実行すると、このプログラムは次のように出力します。
sizeof(char) = 1 sizeof('a') = 4
次に、C で書かれた同じプログラムを見てみましょう。 :
#include <iostream> int main() { std::cout << "sizeof(char) = " << sizeof(char) << std::endl; std::cout << "sizeof('a') = " << sizeof('a') << std::endl; }
C で実行すると、次が出力されます:
sizeof(char) = 1 sizeof('a') = 1
主な違いは、C と C が内部で文字定数を表す方法にあります。 C では、「a」のような文字定数は、対応する ASCII 値を持つ整数として扱われます。整数のサイズは通常 4 バイトであるため、C では sizeof('a') が 4 を返すのはこのためです。一方、C では、文字定数は 1 バイトのサイズの char データ型として扱われます。
以上が`sizeof('a')` が C と C で異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。