是C表达式:
!(*(++buffer))
同样的事情:
!*++buffer
答案 0 :(得分:5)
是的,它们基本相同。这里的优先级没有出现,因为表达式是明确的。
Deference ++
取决于!
的结果,*++buffer
的参数是表达式(...)
的结果。所以任何其他订单根本不可能。 (如果您不相信,请尝试将括号 @ProxyStandard
interface MyProxy extends Proxy<ApplicationPresenter> {
}
@Inject
ApplicationPresenter(){...}
@Override
protected void onBind() {
}
@Override
protected void onReveal() {
}
@Override
protected void onReset() {
Window.alert("reset");
}
置于表达式结果不同的方式中)
为了便于阅读,你可以加上一些括号,但它的风格比任何要求都重要。
答案 1 :(得分:2)
如果您不得不问,请使用括号。
没有任何意义让后来的程序员感到担忧和困惑。如果您不确定,只需使用括号 - 他们免费。
答案 2 :(得分:1)
此处不需要括号。
根据operator precedence table,一元++
前缀运算符,一元indirecton运算符*
和一元逻辑NOT运算符!
都具有相同的优先级,他们从右到左联系。
此外,由于buffer
是较大表达式中包含的唯一基本表达式,因此运算符没有其他方式可以匹配。