什么是结合性(对于运算符)?为什么它很重要?
已更新:运算符关联性
发布于 2009-05-30 20:15:37
对于运算符,结合性意味着当相同的运算符出现在一行中时,我们首先应用哪个运算符。在下面的代码中,让Q
作为运算符
a Q b Q c
如果Q
保持关联,则它的计算结果为
(a Q b) Q c
如果它是右关联的,那么它的计算结果是
a Q (b Q c)
它很重要,因为它改变了表达式的含义。考虑使用整数运算的除法运算符,它是左关联的
4 / 2 / 3 <=> (4 / 2) / 3 <=> 2 / 3 = 0
如果它是右关联的,那么它的计算结果将是一个未定义的表达式,因为您将除以零
4 / 2 / 3 <=> 4 / (2 / 3) <=> 4 / 0 = undefined
发布于 2009-05-30 20:13:17
有三种关联性:
The Associative property in mathematics
Order of Operations in programming languages
数学中的结合属性是加法(+)等运算符的属性。此属性允许您在不更改语句的值的情况下重新排列括号,即:
(a + b) + c = a + (b + c)
在编程语言中,运算符的结合性(或固定性)是一个属性,它决定了在没有括号的情况下如何对具有相同优先级的运算符进行分组;即,每个运算符的计算顺序。这在不同的编程语言中可能有所不同。
在CPU缓存中,关联性是一种优化性能的方法。
发布于 2016-08-06 05:27:09
简单!!
Left Associative means we evaluate our expression from left to right
Right Associative means we evaluate our expression from right to left
我们知道*、/和%具有相同的优先级,但根据关联性,答案可能会发生变化:
例如:我们有表达式:4*8/2%5
Left associative: (4 * 8) / 2 % 5 ==> (32 / 2) % 5 ==> 16 % 5 ==> 1
Right associative: 4 * 8 /(2 % 5) ==> 4 * ( 8 / 2) ==> 4 * 4 ==> 16
https://stackoverflow.com/questions/930486
复制相似问题