xde*_*000 5 c operators language-lawyer
在 C 中,圆括号用于进行更多操作,例如函数调用和类型转换。
然而,它们也用于对许多子表达式进行分组以更改运算符的顺序评估。
我的疑问是:当用作分组运算符时,它们是否被视为运算符?
很多人说是,很多人说不是……
6.5 表达式 (N1570) 第 3 段
运算符和操作数的分组由语法指示。85)
有以下注释:
85) 语法指定了表达式求值时运算符的优先级,这与本节主要子节的顺序相同,优先级最高的在前。因此,例如,允许作为二元 + 运算符 (6.5.6) 的操作数的表达式是 6.5.1 到 6.5.6 中定义的那些表达式。例外情况是作为一元运算符 (6.5.3) 的操作数的强制转换表达式 (6.5.4),以及包含在以下任意一对运算符之间的操作数:分组括号 () (6.5.1)、下标括号 [] (6.5) .2.1)、函数调用括号 () (6.5.2.2) 和条件运算符 ?: (6.5.15)。
所以看起来 C 标准将它们视为运算符。