首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C/C++中的表达式计算不遵循BODMAS规则?

C/C++中的表达式计算不遵循BODMAS规则?
EN

Stack Overflow用户
提问于 2010-10-26 03:10:01
回答 6查看 20.6K关注 0票数 2

当一个表达式在C/C++中求值时,它是否遵循BODMAS方括号中的开除乘加减法规则?如果不是,那么如何对它们进行评估?

编辑:更清楚地说,如果根据BODMAS规则计算以下表达式,

(5 + 3)/8*9

首先,处理括号中的内容。

8/8*9。

然后除法就完成了。

1*9

然后是乘法,诸如此类。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-10-26 03:11:49

还有更多的运算符。您可以找到C++C的排序表。

但是的,你会发现它尊重这一点。(虽然我不确定这是不是你所说的…)

票数 5
EN

Stack Overflow用户

发布于 2010-10-26 03:13:30

这个问题有两个答案。

其一是C++确实遵循标准的数学优先规则,您称之为BODMAS。您可以看到C++关联其所有运算符here的顺序。

但是,如果操作中涉及的任何表达式都有副作用,则不能保证C++会按照标准的数学顺序对它们进行计算。然而,这是一个比较高级的话题。

票数 5
EN

Stack Overflow用户

发布于 2010-10-26 03:29:54

其他人为您提供了运算符优先列表的链接。这些都很好。但是,如果您需要查看运算符优先表来确定您的代码告诉计算机要做什么,请同情您代码的维护者(包括未来的您),只需使用括号。从长远来看,这会让你的意图更加清晰,并节省时间和心痛。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4017954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档