当一个表达式在C/C++中求值时,它是否遵循BODMAS方括号中的开除乘加减法规则?如果不是,那么如何对它们进行评估?
编辑:更清楚地说,如果根据BODMAS规则计算以下表达式,
(5 + 3)/8*9
首先,处理括号中的内容。
8/8*9。
然后除法就完成了。
1*9
然后是乘法,诸如此类。
发布于 2010-10-26 03:11:49
还有更多的运算符。您可以找到C++和C的排序表。
但是的,你会发现它尊重这一点。(虽然我不确定这是不是你所说的…)
发布于 2010-10-26 03:13:30
这个问题有两个答案。
其一是C++确实遵循标准的数学优先规则,您称之为BODMAS。您可以看到C++关联其所有运算符here的顺序。
但是,如果操作中涉及的任何表达式都有副作用,则不能保证C++会按照标准的数学顺序对它们进行计算。然而,这是一个比较高级的话题。
发布于 2010-10-26 03:29:54
其他人为您提供了运算符优先列表的链接。这些都很好。但是,如果您需要查看运算符优先表来确定您的代码告诉计算机要做什么,请同情您代码的维护者(包括未来的您),只需使用括号。从长远来看,这会让你的意图更加清晰,并节省时间和心痛。
https://stackoverflow.com/questions/4017954
复制相似问题