x=4
+=在执行语句的过程中并不会赋值,所以在执行的过程中调用到的x所储存的值都是4.
x+=(x-=(x-(x--)))=
x+=(x-=(x-3))=
4+=(4-=1)=
4+3=7
唔,本地g++运行结果是7.
不知道怎么回事。
从左往右计算,先算x++,得出x=4,但因为x++是先算后加,所以这里(x++)为3,
下一步++x,先加后算,所以这里x=5,(++x)为5,
再下一步将(x++)和(++x)加在一起,为8,
最后一步x++,得出x=6,但同第一步,x++为5,所以最终答案为8+5=13
这个是讲的 先加加 与 后加加的应用
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
先加加 是在运算符之前执行 累加 后加加是在运算结束后进行累加。
执行前增量操作执行第二个(++x) 执行后x为4
执行运算符 + 也就是 y = 4 + 4 + 4
然后执行第一个(x++) x = 5
再执行第三个(x++) x = 6
先加加 是在运算符之前执行 累加 后加加是在运算结束后进行累加。
x加加代表先赋值后加1
加加x代表先加1后赋值
所以第一个括号()结果为4 x也为4
第二个扣号就是4加1为5 x为5
第三个阔号就是6
所以是15