看完后大家不要看下面的结构,想一下在做决定 !!!
#include <stdio.h>
int main()
{
int i;
i = 10;
printf("i : %d\n",i);
printf("sizeof(i++) is: %d\n",sizeof(i++));
printf("i : %d\n",i);
return 0;
}
参考答案:如果你觉得输出分别是,10,4,11,那么你就错了,错在了第三个,第一个是10没有什么问题,第二个是4,也没有什么问题,因为是32位机上一个int有4个字节。但是第三个为什么输出的不是11呢?居然还是10?原因是,sizeof不是一个函数,是一个操作符,其求i++的类型的size,这是一件可以在程序运行前(编译时)完全的事情,所以,sizeof(i++)直接就被4给取代了,在运行时也就不会有了i++这个表达式。
该程序是一位名人的博客上的一段,贴出来给大家看看 !
小弟对它的参考答案理解的不是很清楚 ,所以有哪位大侠能说详细点?
谢谢了大侠们赏脸了,看不懂的就增长哈见识,看得懂的大侠们详细 道来给菜鸟们听听 !!