基于sizeof运算符

时间:2013-10-11 11:47:31

标签: c gcc casting type-conversion

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

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

2 个答案:

答案 0 :(得分:10)

由于i的类型为double,您平台上的double大小为8。

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

答案 1 :(得分:1)

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