优先级,关联性和顺序之间有什么区别?

Cod*_*yer 5 c# arithmetic-expressions

由于大多数人都接受过根据PEDMAS或BODMAS规则评估算术表达式的训练而产生这种混淆,而像C#这样的编程语言中的算术表达式不能以相同的方式工作.

你有什么需要呢?

Mat*_*tej 9

优先规则指定运算符的优先级(首先评估哪些运算符,例如乘法优先于加法,PEMDAS).

关联规则告诉如何相同的优先级的运营商进行分组.算术运算符是左关联的,但赋值是右关联的(例如a = b = c将被计算为b = c,a = b).

顺序是应用优先级关联性规则的结果,并告诉我们将如何评估表达式 - 哪些运算符将被评估为firs,稍后将对其进行评估.可以使用括号更改实际顺序(大括号也是具有最高优先级的运算符).

编程语言中运算符的优先级关联性可以在其语言手册或规范中找到.


ben*_*ual 2

我不确定是否真的有区别。传统的 BODMAS(括号、阶数、除法、乘法、加法、减法)或 PEDMAS(括号、指数、除法、乘法、加法、减法)只是所有可能运算的子集,并表示这些运算应应用的顺序我不知道有哪种语言违反了 BODMAS/PEDMAS 规则,但每种语言通常都会添加各种其他运算符 - 例如 ++、--、= 等。

我总是随身携带一份运算符优先级列表,以防混淆。然而,当有疑问时,通常值得使用一些括号来使含义清晰。请注意,括号没有最高优先级 -有关 C++ 示例,请参阅http://msdn.microsoft.com/en-us/library/126fe14k.aspx 。