-1

为什么这段代码在 gcc 编译器中执行时打印 8 作为其输出?

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

2 回答 2

10

因为类型idouble,而double你平台上的大小是 8。

奇怪的演员阵容无关紧要,它不会改变 的声明i,也不会改变sizeof调用。

于 2013-10-11T11:48:39.503 回答
1

类型转换永远不会减少或增加变量的大小。

于 2013-10-11T11:49:46.980 回答