C语言(x++)+(++x)+(x++)?

有下代码int x=3;int y=(x++)+(++x)+(x++); 计算结果如下1.执行前增量操作(x++) 执行后x为4;2.然后取x的值计算表达式:y=4+4+4=12. (这里我有点不明白只加(x++)吗? 后面的(++x)和(x++) 不用加了吗?3.最后执行后增量操作:该表达式中含有两个后增量操作,则执行后x=6.(这里不明白为什么x=6.执行上述代码后X=6,y=12. (这里也不明白 ?) 

x=4

+=在执行语句的过程中并不会赋值,所以在执行的过程中调用到的x所储存的值都是4.

x+=(x-=(x-(x--)))=

x+=(x-=(x-3))=

4+=(4-=1)=

4+3=7


唔,本地g++运行结果是7.

不知道怎么回事。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-02
从左往右计算,先算x++,得出x=4,但因为x++是先算后加,所以这里(x++)为3,

下一步++x,先加后算,所以这里x=5,(++x)为5,
再下一步将(x++)和(++x)加在一起,为8,
最后一步x++,得出x=6,但同第一步,x++为5,所以最终答案为8+5=13
第2个回答  推荐于2018-03-14
这个是讲的 先加加 与 后加加的应用

int x=3;int y=(x++)+(++x)+(x++);
计算结果如下
1.执行前增量操作执行第二个(++x) 执行后x为4;
2.执行运算符 + 也就是 y = 4 + 4 + 4
3.然后执行第一个(x++) x = 5
4.再执行第三个(x++) x = 6
先加加 是在运算符之前执行 累加 后加加是在运算结束后进行累加。本回答被网友采纳
第3个回答  2012-07-14
执行前增量操作执行第二个(++x) 执行后x为4
执行运算符 + 也就是 y = 4 + 4 + 4
然后执行第一个(x++) x = 5
再执行第三个(x++) x = 6
先加加 是在运算符之前执行 累加 后加加是在运算结束后进行累加。
第4个回答  2019-10-16
x加加代表先赋值后加1
加加x代表先加1后赋值
所以第一个括号()结果为4 x也为4
第二个扣号就是4加1为5 x为5
第三个阔号就是6
所以是15
相似回答