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

问题描述 投票:-7回答:4

在C ++中执行算术运算符(+-*/%)的顺序是什么?标准BODMAS规则是否适用于此处?举个例子,m的价值在这里:

m = 605 / 10 + 45 % 7 + 29 % 11;
c++ math operators execution
4个回答
4
投票

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;

1
投票

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

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

在这种情况下,结果将是70。您应该注意的两件事是优先级和关联性(从左到右与从右到左)


1
投票

标记这个社区维基因为这个信息已经存在于很多地方......但可能值得一个家。

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

然后应用+-,也从左到右

引自here

你的m将是70


1
投票

完整的订单可以找到here。 /和%是第一个。然后+。喜欢数学......

© www.soinside.com 2019 - 2024. All rights reserved.