sizeof的奇妙

在论坛上看了个帖子

	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

猜你喜欢

转载自blog.csdn.net/kingskyleader/article/details/6783589