假设我有a+++b
。编译器计算(a++)+b
而不是a+(++b)
。为什么呢?
答案 0 :(得分:1)
因为Postfix运算符有更多precedence超过前缀运算符。
具有简单且可记忆良好的优先级列表的优点 其中所有后缀运算符都在任何前缀运算符之前 足以容忍总是不得不使用的小缺点 括号来组成前缀和后缀运算符++ / - ,就像这样 组成很少使用。
答案 1 :(得分:1)
严格地说,++a
在Java中不是前缀运算符,它是unary
。并且它比后缀运算符(a++
)少precedence。
通常,编译器将首先执行具有更高优先级的运算符。因此,第一个后缀运算符(在您的情况下a++
首先执行,添加运算符+
秒。