1. int a=2; int b = a++; System.out.println(b); 2. int a = 2; int b = ++a; System.out.println(b); 3. int a = 2; a = a++; System.out.println(a);
熟知的自增运算符
a++:我们说是先赋值,再增加
++a:我们说是先增加,再赋值
这个口诀从大一时c语言老师就教导我们,那么第三题a是多少呢?按照口诀a先赋值 再增加,那么在下一条语句中应该是增加后的值。但我们运行之后却发现结果是2
由此,我们需要好好考虑a++的运行原理了。
b = a++;
赋值语句先进行右边,但a在自增之前将a之前的值保存在内存的临时区域内,然后a进行自增工作,最后再将放在临时区域的a之前的值赋给b。
然后我们重新看第三题,a = a++;
先进行右侧,在自增运算之前,先将a的值保存在临时区域内,此时进行自增运算 a=3,
自增运算完成后,再将放在临时区域内的之前a值赋给a,a的值又被刷新为2。
扫描二维码关注公众号,回复:
735352 查看本文章