在C语言中,常常用到sizeof计算变量、结构的大小,进行赋值或分配空间;也用来计算数组中成员个数,防止溢出。
今天发现一个有意思的现象,下面一段代码输出结果?
int var=1;
sizeof(++var);
printf(“var=%d”,var);
可以在C语言中执行以下,会发现实际var的值并没有改变。
sizeof既不是运算符,也不是函数,在预编译时进行括号中内容的大小的计算,但括号中的代码是不被执行的。就是说sizeof括号中的代码只是被预编译,并未执行其中任何代码,所以上边var变量的值也不变。