sizeof的奇妙

来源:互联网 发布:淘宝店铺布局 编辑:程序博客网 时间:2024/04/30 19:39

在论坛上看了个帖子

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


原创粉丝点击