int x=5;
int m=0;
x+=x+++(x++ +m);
System.out.println(x);这个输出的结果是16 。 x+=x+++(x++ +m);
这个运算顺序是什么啊?每一步的运算结果是多少啊?谢谢了。
int m=0;
x+=x+++(x++ +m);
System.out.println(x);这个输出的结果是16 。 x+=x+++(x++ +m);
这个运算顺序是什么啊?每一步的运算结果是多少啊?谢谢了。
调试欢乐多
所以, 就相当于下面的式子了x += x++ + (x++ + m)
也就相当于
x = x + (x++ + (x++ + m);x = 5, m = 0
也就是
x = 5 + (5 + (6 + 0));
第一个5不需要解释, 第二个5是因为x++, ++在后面所以先取出5, 再对x增1, 所以x现在等于6, 这也就是为什么后面第三个数是6, 这时候其实还要对x增1, 就是x = 7. 但最后又把16赋给了x, 所以x 的最终结果是16...
是不是好啰嗦...
x=7+(6+(5+0))阿。
x=7+(6+(5+0))阿。应该是从左往右的顺序, 所以虽然(x++ + m) 有括号, 但还是x++ + (x++ + m) 从左往右...
那么优先级别怎么体现出来。
m=0
x+=x+++(x++ +m)
x=x+(x++)+(x++ +m)
x=5+5+(6+0)
x=16++ 是一元用算符,优先级高于二元运算符