慕瓜7561383
2017-11-24 21:14
int a = 5; int b = a++; System.out.println(b); ++的优先级高于=,那应该先执行a++,再赋值,那b的结果不应该是6吗? 为什么是5
++在前先自增再赋值,++在后先赋值再自增,所以5是没毛病的
++(赋值运算符)的运算优先级确实高于=(赋值运算符),但是要理解a++的过程:a++是先调用a的值,之后a加一,如果无需调用a的值,则a自行加一。可见对于b=a++,首先调用a的初值给b赋值,然后a自行加一。所以在优先级上是没有问题的。你可以再输出a的值,检验a是否加一。
++a是先赋值再计算 a--是先a+b然后a减1
Java入门第一季(IDEA工具)升级版
1165554 学习 · 17587 问题
相似问题