算术运算符执行顺序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
。您应该注意的两件事是 precedence 和 associativity(从左到右 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
。
在C++中,算术运算符(+
、-
、*
、/
、%
)的执行顺序是什么?标准的 BODMAS 规则适用于此吗?
例如,这里 m
的值是多少:
m = 605 / 10 + 45 % 7 + 29 % 11;
在您的表达式中,由于 operator precedence 您可以将其解析为以下内容
m = (605 / 10) + (45 % 7) + (29 % 11);
在这种情况下,结果将是 70
。您应该注意的两件事是 precedence 和 associativity(从左到右 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
。