为什么sizeof(x++)不增加x?

这里是在DEVC++窗口中编译的代码:

#包括<标准h>
int main(){
int x=5;
printf(“%d和”,sizeof(x++);//注1
printf(“%d\n”,x);//注2
返回0;
}

我希望执行注释1后,x为6。然而,输出是:

4和5

有人能解释为什么x注1之后没有增加吗

来自C99标准(重点是我的)

6.5.3.4/2

sizeof运算符生成其操作数的大小(以字节为单位),可以是表达式或类型的括号名称。大小由操作数的类型决定。结果是一个整数。如果操作数的类型是可变长度数组类型,则对操作数求值;否则,不计算操作数,结果为整数常量

发表评论