用于分组的圆括号是否被视为运算符?

xde*_*000 5 c operators language-lawyer

在 C 中,圆括号用于进行更多操作,例如函数调用和类型转换。

然而,它们也用于对许多子表达式进行分组以更改运算符的顺序评估。

我的疑问是:当用作分组运算符时,它们是否被视为运算符?

很多人说是,很多人说不是……

use*_*733 3

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 标准将它们视为运算符。