在论坛上看了个帖子
int i=2;
int j=sizeof(++i);
printf("%d",i);
就是问输出是多少,答案是2,为什么呢?
sizeof 操作符给出其操作数需要占用的空间大小, 它是在编译时就可确定的, 所以其操作数即使是一个表达式,
也不需要在运行时进行计算.( ++i )是不会执行的, 所以i的值还是2。
然后我自己又做了几个实验
int i=2;
int j=sizeof(i*=2);
printf("%d",i);
i的结果还是2
另外,还有一点很奇怪的
int i=2;
int j=sizeof(i*1.0);
printf("%d",j);
输出的是double的字节数,而不是int