为了账号安全,请及时绑定邮箱和手机立即绑定

b=a++问题

int a = 5; int b = a++; System.out.println(b); ++的优先级高于=,那应该先执行a++,再赋值,那b的结果不应该是6吗? 为什么是5

正在回答

3 回答

++在前先自增再赋值,++在后先赋值再自增,所以5是没毛病的

0 回复 有任何疑惑可以回复我~

++(赋值运算符)的运算优先级确实高于=(赋值运算符),但是要理解a++的过程:a++是先调用a的值,之后a加一,如果无需调用a的值,则a自行加一。可见对于b=a++,首先调用a的初值给b赋值,然后a自行加一。所以在优先级上是没有问题的。你可以再输出a的值,检验a是否加一。

0 回复 有任何疑惑可以回复我~

++a是先赋值再计算 a--是先a+b然后a减1

0 回复 有任何疑惑可以回复我~
#1

慕丝2420029

a++才是先赋值再计算吧?难道我记错啦。。。
2018-07-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信