-4

char1バイト単位です。intは 2 バイトのインクリメントです。floatは 4 バイト単位です。doubleは 8 バイト単位です。ここでint が4 バイトを増やすのはなぜですか?

16 進インクリメント プログラム

16 進インクリメント出力

4

2 に答える 2

3

これを試してください:

int i;
...
printf("%d",sizeof(i));

何を手に入れましたか?おそらく 4. なぜ?あなたのCPUはおそらく32ビットのものだからです。古いCPUでは2バイトのintが真でした...

「あるべき」に基づいて変数のサイズを仮定しないでください。常に sizeof() を使用してください!

于 2012-10-19T06:38:15.150 に答える
0

intは32bitなのでそうですfloat。ここでdoubleは、64 ビットです。

多くの 16 ビット システムでintは、16 ビットです。Cintは、コンパイル対象のシステムにとって最も自然なサイズになるように意図されていました。intシステム間で同じサイズである必要はありません。

于 2012-10-19T06:37:23.730 に答える