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