Tag: 相关性

运营商的C99关联性 – 指定在哪里?

在C99标准中,表达式允许优先级和关联性。 由于运算符在文档中出现的顺序优先级较低,所以优先级记录得非常好,因此函数调用在乘法运算符之前出现,而乘法运算符又在加法运算符之前出现。 但是,我无法找到关联性的明确描述,无论是左还是右。 这很重要,因为(35/5)*2对于一个变体(35/5)*2 35/5*2将是14对于另一个变体35/(5*2) 。 第6.5 Expressions /3, footnote 74节6.5 Expressions /3, footnote 74状态: 语法指定运算符在表达式求值中的优先级,该子表达式与本子条款的主要子条款的顺序相同,优先级最高。 在每个主要子条款中,运算符具有相同的优先级。 左或右相关性在每个子条款中通过其中讨论的表达式的语法指示。 但是,以乘法情况为例,例如: 6.5.5乘法运算符 句法 multiplicative-expression: cast-expression multiplicative-expression * cast-expression multiplicative-expression / cast-expression multiplicative-expression % cast-expression 约束 每个操作数都应具有算术类型。 %运算符的操作数应具有整数类型。 语义 通常的算术转换是在操作数上执行的。 binary *运算符的结果是操作数的乘积。 /运算符的结果是第一个操作数除以第二个操作数的商; %运算符的结果是余数。 在这两个操作中,如果第二个操作数的值为零,则行为未定义。 当整数被划分时, /运算符的结果是代数商,丢弃任何小数部分。 如果商a/b是可表示的,则表达式(a/b)*b + a%b应等于a 。 我在那里什么都看不到提到关联性,标准中的其他地方似乎也没有任何默认设置。 我在这里错过了什么吗?