安培和方括号优先
Ampersand and square brackets priority
本文关键字:方括号 更新时间:2023-10-16
我看到很多程序员在表达式周围使用括号,例如:
&(tab[i]) /* I use `&tab[i]`. */
我认为没有必要,因为[]
运算符比&
运算符具有更高的优先级。那么,他们为什么要使用括号呢?
为了清楚起见。并不是每个人都记住了所有的操作员经验。
我认为基本上有两个原因:
- 程序员不确定运算符的优先级和代码的防御性
- 让每一位读者(可能没有记住先例)都清楚地知道发生了什么
这确实没有必要,因为后缀运算符的优先级总是高于一元运算符。
在&(tab[i])
中使用parens的人使用它们的原因与在表达式(8 * 5) / 2
中使用paren的原因相同。
在最近的一个问题中,有人不得不解密像--p---> x < 0
这样的代码。就像您的代码一样,根据C++解析规则,该代码是明确的。
然而,人类并不总是记住所有这些复杂的规则,因此许多程序员养成了在他人(或自己)可能不完全清楚的情况下使用paren的习惯。它记录了代码的真实意图。
这是一件好事™
因为他们发现它更清晰?尤其是像这样的东西:
int *a[];
这是指向int数组的指针还是指向int的指针数组?
相关文章:
- 对于C++,方括号中的标题必须总是在引号中的标题之上吗
- 检查由括号、方括号和大括号组成的一组方括号是否有效?
- 方括号 [] 和括号 () 之间的犰狳库差异
- C++带方括号的函数调用
- 删除动态数组上不带方括号的内容
- 如何在方括号内打印整个数组,而不是打印每个值?
- 方括号在"map <string, int> instance[numberFeatures];"中是什么意思
- 如何输入和输出方括号运算符 []
- 创建一个可以接收 board1[{1,1}]='X'; 的类; ?(方括号内的大括号)
- 此代码行末尾的方括号是什么意思
- 方括号 [] 运算符重载 C++
- 方括号和圆括号操作器,如何选择重载
- 方括号重载运算符来设置而不是获取 c++
- 在以下代码中,该方括号的用途是什么?
- 数组在方括号中增加元素是什么意思
- 方括号内的 sscanf 分析值
- 正则表达式C++不使用方括号
- 安培和方括号优先
- regex_match找不到方括号
- MyString链表类c++中的方括号运算符[]重载