为什么在gcc编译器中执行时,此代码打印8作为输出?
#include<stdio.h>
double i;
int main()
{
(int)(float)(char)i;
printf("%d",sizeof(i));
return 0;
}
答案 0 :(得分:10)
由于i
的类型为double
,您平台上的double
大小为8。
奇怪演员阵容并不重要,它不会改变i
的声明,也不会改变sizeof
调用。
答案 1 :(得分:1)
类型转换永远不会减少或增加变量的大小。