char
1バイト単位です。int
は 2 バイトのインクリメントです。float
は 4 バイト単位です。double
は 8 バイト単位です。ここでint が4 バイトを増やすのはなぜですか?
質問する
221 次
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 に答える