问答详情
源自:3-8 Java中运算符的优先级

b=a++问题

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

提问者:慕瓜7561383 2017-11-24 21:14

个回答

  • 慕设计2363192
    2018-07-15 14:02:04

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

  • 临门_一脚
    2017-12-01 17:21:03

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

  • 学不会0
    2017-11-24 21:28:40

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