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


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


これを試してください:
int i;
...
printf("%d",sizeof(i));
何を手に入れましたか?おそらく 4. なぜ?あなたのCPUはおそらく32ビットのものだからです。古いCPUでは2バイトのintが真でした...
「あるべき」に基づいて変数のサイズを仮定しないでください。常に sizeof() を使用してください!
intは32bitなのでそうですfloat。ここでdoubleは、64 ビットです。
多くの 16 ビット システムでintは、16 ビットです。Cintは、コンパイル対象のシステムにとって最も自然なサイズになるように意図されていました。intシステム間で同じサイズである必要はありません。