标签: c prefix postfix-operator
对于此代码
int j=2; int c=(j++)*(j++); printf("%d\n",c);
我得到c的值为6
对于以下代码
int j=2; int c=(++j)*(++j); printf("%d\n",c);
我得到c的值为16
有人可以向我解释这个案子吗?
答案 0 :(得分:1)
您正在同时修改变量的值,并在表达式中使用该变量。因此,您的代码显示未定义的行为。未定义的行为就是这样;什么都可能发生。没有合理的方法可以预测您编写的代码会产生什么值。