例:a == b == c
假设均为int 型
左结合性:原表达式相当于 (a == b) == c 先计算 a == b,返回 true 或者 false。由于 c 是 int 型,因此会发生隐式类型转换, true 或者 false 会被转换为 int 型的 1 或者 0。最后表达式就变成 1 == c 或者 0 == c。这显然不是在检查 a、b、c 三个变量是否相等,会引起误解。可以证明,对于超过两个连续使用的 == 运算符,都会引起类似的误解。
例:a == b == c
假设均为int 型
左结合性:原表达式相当于 (a == b) == c 先计算 a == b,返回 true 或者 false。由于 c 是 int 型,因此会发生隐式类型转换, true 或者 false 会被转换为 int 型的 1 或者 0。最后表达式就变成 1 == c 或者 0 == c。这显然不是在检查 a、b、c 三个变量是否相等,会引起误解。可以证明,对于超过两个连续使用的 == 运算符,都会引起类似的误解。