看到一个JAVA问题
int a = 1;
int b = a++ + ++a;
System.out.print( b );
那么 b 等于多少?
a++
先取值就是先取a的值说明 a++ 的值是1,后自增说明 a++ 取值之后a的值变为2++a
因为上一步 a的值为2,这一步先运算 得到 3,后取值得到 ++a的值是3+
加法运算,将两个子表达式的值相加,也就是 1+3 ,最终得到 4如果是加加在前面,则先算加加,如果加加在后面则此句执行完后再算加加。
1、比如:b=++a;相当于++a;b=a;而b=a++;相当于b=a;a++
2、那么:b=a++ + ++a;则后面部分的++a先执行,相当于:++a;b=a+a;a++
3、结果a先变为2,然后b等于两个a相加等于4,然后a再自增一变为3,b=2+2=4
a++是计算完成后自加一
++a是计算之前自加一
b=a++(这里a=1) + ++a(现在a=3,a先加上刚才a++的1,然后加上++a的1)
所以b=4