算术运算符执行顺序C++

Order of arithmetic operator execution C++

在C++中,算术运算符(+-*/%)的执行顺序是什么?标准的 BODMAS 规则适用于此吗? 例如,这里 m 的值是多少:

m = 605 / 10 + 45 % 7 + 29 % 11;

在您的表达式中,由于 operator precedence 您可以将其解析为以下内容

m = (605 / 10) + (45 % 7) + (29 % 11);

在这种情况下,结果将是 70。您应该注意的两件事是 precedenceassociativity(从左到右 vs 从右到左)

可以找到完整的订单here。 / 和 % 是第一位的。然后是+。就像数学...

C++的运算符优先级是标准的数学优先级,其中%/具有相同的优先级。

因此,表达式 m = 605 / 10 + 45 % 7 + 29 % 11; 将被计算为

m = (605 / 10) + (45 % 7) + (29 % 11);

这将导致:

m = (605 / 10) + (45 % 7) + (29 % 11);
m = 60 + 3 +7;
m = 70;

标记这个社区 wiki,因为很多地方已经存在这样的信息...但在这里应该有一个家。

对于数学运算,首先应用 */%,从左到右

然后应用

+-,也是从左到右

引用自here

您的 m 将是 70