C中的乘法与除法

AkS*_*jan 1 c operator-precedence

C遵循BODMAS规则吗?我对乘法和除法感到困惑.

乘法是否优先于除法,还是其他方式?

Kei*_*son 5

乘法,除法和余数具有相同的优先级,并且从左到右关联.

例如,x * y / z与...相同(x * y) / z并且
x / y * z相同(x / y) * z.

这是否符合BODMAS规则似乎是一个争议的问题,但这是关于BODMAS的意义的问题,而不是关于C的语义.链接的维基百科文章说"乘法和除法具有相同的优先权",这是与C一致(除了它没有提到C的余数运算符%).

C标准(该链接是C11的N1570草案)不直接定义"操作符的优先级".相反,它定义了表达式的层次结构语法.例如,乘法表达式的语法(在6.5.5节中定义)是:

multiplicative-expression:
     cast-expression
     multiplicative-expression cast-expression multiplicative-expression cast-expression multiplicative-expression cast-expression*
      /
      %

铸表达式(6.5.4)可以或可以不包括一个转换运算符; 它是任何表达式,可以在乘法表达式中作为术语出现.