C语言++,--运算符怎么用?

来源:百度知道 编辑:UC知道 时间:2024/05/05 20:12:11
int x=2,y,z;
y=(++x)+(x++)+(++x);
z=(x--)+(--x)+(x--);
为什么y和z都等于12呢?

sigh,答案也许跟具体的编译器相关。
你得到的这个结果可以这么解释:
求y的x,经过两次在本语句中的有效自加(++x),在本语句中的值为4,3个4相加等于12;
到计算z时,开始x=5,在本语句有效的自减为一次,故x=4,3个4相加等于12。

这两个表达式在不同的编译器上结果也许不同。

对于Y:
第一个++x算出来是3,第二个x++算出来是4,第三个++x算出来5===>3+4+5=12
对于Z:
第一个x--算出来是4,第二个--x算出来是3,第三个x--算出来是2;
===>4+3+2=9
我都算疯了.