(a++) + (++a)

int a = 0;
int b;
b = (a++) + (++a);
System.out.println("b:" + b);
System.out.println("a:" + a);

打印输出:

b:2
a:2

个人理解:

++ 的优先级高于 +

++ a 先于 a ++ 执行

所以,这个语句执行顺序是:

先做 ++a, 这个时候a的值已经变成了1并且参与运算(就是先赋值,后参与运算)

然后做 a++, a的值变成了2但是不参与运算(就是先参与运算,运算结束后赋值)

然后在运算的时候,两个a参与运算的值都是1,b就是2了

然后再输出a,a的值是2

请轻喷

猜你喜欢

转载自blog.csdn.net/baidu_36797310/article/details/81478723