我如何判断或理解任何语句或表达式是否具有从左到右或从右到左的结合性?
发布于 2010-06-25 01:24:14
=,+=等,其中有'=‘的运算符是右关联的。
所有其他的都是左相关的。
发布于 2010-06-25 01:24:39
这是一个table of C++ operator precedence。
运算符优先级和结合性在C和C++中是相同的(前者中不存在的模运算符)。
发布于 2010-06-25 01:49:54
阅读标准
编辑:我自己没有这个标准,但我发现this link应该是基于这个标准的。
另外,引用Kernighan &Ritchie的话:
算术运算符从左到右关联。
由&&或||连接的表达式从左到右求值,一旦知道结果的真假,求值就会停止。大多数C程序都依赖于这些属性。
运算符结合性
() [] ->。从左到右
!~ ++ -- +-*(类型)大小从右到左
*/% left to right
<< >>从左到右
< <= > >=从左到右
== !=从左到右
从左到右
^从左到右
|从左到右
从左到右
||从左到右
?:从右到左
= += -= *= /= %= &= ^= |= <<= >>= right to left
,从左到右
与二进制forms.相比,一元& +、-和*具有更高的优先级
https://stackoverflow.com/questions/3112315
复制相似问题