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

关于a=++b 和a=b++符号优先级问题

由优先级表格可以知道

++  -- 优先级 比=高

可是 如果这样算 a=++b与a=b++没有区别

但是 实际上两个值不相同

提问者:鱼入深海 2018-07-16 11:10

个回答

  • 5音6律
    2018-07-27 14:02:59
    已采纳

    这位兄弟提的问题不是运算符优先级别的问题,而且表达式书写不同而得到不同结果的问题,java中就是规定 a++与++a的结果是不一样的,其实其他语言也是这么规定的。 ++a 或者 a++ 都是一个完整的表达式,不能被拆分的。 

    你问题中 第二个表达式 a = b++; 并不是因为优先级 b先自加 然后再将结果给a ,而是只要b++这么写了,就一定会执行 b=b+1,然后整个b++的结果为b给a进行赋值。

    第一个表达式 a= ++b;其实也是执行了2步,先b = b+1,然后整个++b的结果为b+1给a进行赋值。

  • 慕尼黑3621939
    2018-07-16 11:19:01

    a=++b是b先自增后再赋值给a,

    a=b++是先将b值赋值给a后b再自增。