-1

gcc コンパイラで実行すると、このコードが出力として 8 を出力するのはなぜですか?

#include<stdio.h>
double i;
int main()
{
(int)(float)(char)i;
printf("%d",sizeof(i));
return 0;
}
4

2 に答える 2

10

のタイプはi で、プラットフォーム上doubleの のサイズは 8 であるためです。double

i奇妙なキャストの行は問題ではなく、 の宣言もsizeof呼び出しも変更しません。

于 2013-10-11T11:48:39.503 に答える
1

型キャストは、変数のサイズを縮小または拡大することはできません。

于 2013-10-11T11:49:46.980 に答える