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

来源:3-8 Java中运算符的优先级

鱼入深海

2018-07-16 11:10

由优先级表格可以知道

++  -- 优先级 比=高

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

但是 实际上两个值不相同

写回答 关注

2回答

  • 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进行赋值。

    鱼入深海

    非常感谢!

    2018-08-02 21:57:31

    共 1 条回复 >

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

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

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


    鱼入深海

    我的意思是 ++ 比 = 优先级高 a=b++ 和a=++b 中 ++都比=高 这样算 答案是一样的

    2018-07-20 14:59:58

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题