回答受付が終了しました

C言語 sizeof演算子についての質問です。 x = sizeof(int); としてxを表示させたとき、表示結果とそうなる理由を教えていただきたいです。 よろしくお願いいたします。

回答(5件)

0

sizeof は 常に0以外の整数値を返します。 以下は Visual Studio 2019(Ver.16.11.3/x86)の sizeof を実行したときに返却される値となっています。 sizeof(char) = 1 sizeof(unsigned char) = 1 sizeof(short) = 2 sizeof(unsigned short) = 2 sizeof(int) = 4 sizeof(unsigned int) = 4 sizeof(long) = 4 sizeof(unsigned long) = 4 sizeof(long long int) = 8 sizeof(unsigned long long int) = 8 sizeof(float) = 4 sizeof(double) = 8 sizeof(long double) = 8 sizeof(nullptr) = 4

0

結果:不明 理由:int型のサイズは「その処理系で最も扱いやすいサイズ」と曖昧な定義になっているから。

0

C言語のルール上、intのサイズは2バイトより大きく、long以下の、その環境で最も使いやすいサイズ。 という規定なので、環境によってサイズは異なります。 なので、決まった値はありません。 表示結果についても、表示の仕方次第でいくらでも変わります。 C言語には、決まった表示方法というものはありません。

0

int の大きさは環境によるので、なんとも言えない ということと 「x を表示させたとき」のその表示させ方も色々あるので、それだけだと、なんとも言えないです。 例えば、x が 16 だったとして… じゃあその16を10進法で表示させたら、「16」ですが、16進法だったら、「10」だし、ゼロパディングとか、符号をつけたりしたら、「+00000016」とかかもしれないですし。 「どう表示させるか」という情報が完全に不足しているので、「表示結果とそうなる理由」は、いくらでも組み合わせが存在します。

3

C言語のintのサイズは処理系で異なる可能性がありますのでどんな値になるかはこれだけの条件では決まりません。

3人がナイス!しています