我看到很多程序员在表达式周围使用括号,例如:
&(tab[i]) /* I use `&tab[i]`. */
我认为没有必要,因为[]
运算符的优先级高于&
运算符。那么,为什么他们使用括号?
答案 0 :(得分:10)
为了清楚起见。并非每个人都记住了所有的运算符优先级。
答案 1 :(得分:3)
我认为基本上有两个原因:
答案 2 :(得分:2)
确实没有必要,因为后缀运算符的优先级始终高于一元运算符。
&(tab[i])
中使用parens的人使用它们的原因与他们在表达式(8 * 5) / 2
中使用它们的原因相同。
答案 3 :(得分:2)
在最近的一个问题中,有人必须像--p---> x < 0
那样使用decypher代码。就像您的代码一样,该代码根据C ++解析规则是明确的。
然而,人类并不总是记住所有这些复杂的规则,因此许多程序员习惯于在其他人(或他们自己)看起来并不完全清楚的情况下使用parens。它记录了代码的真实意图。
这是一件好事(The Thing To Do™)
答案 4 :(得分:1)
因为他们觉得更清楚了吗?特别是对于这样的事情:
int *a[];
这是指向int数组的指针还是指向int的指针数组?