我们来看这样一串代码
#include <stdio.h>
int main()
{
int a = 3, b = 3, c = 3;
if (a == b == c)
printf("ture");
else
printf("false");
return 0;
}
a==b==c看起来是不是没有什么毛病
但是执行一下我们发现结果为
竟然不是ture
为什么会出现这种情况呢?
这是由于c语言在进行运算的时候,会根据优先级和结合律,进行a==b的计算,当a==b的时候那么就为真,为1,这个时候就不是b和c进行比较了,而是1和c进行比较,所以结果就是false