在c语言中a==b==c与a==b,b==c有区别吗?

2024-12-01 11:31:21
推荐回答(5个)
回答1:

这个太有区别了!
a==b==c 是一个关系表达式,由于运算符"=="具有左结合性,故其运算顺序是:
((a==b) ==c )
若a=5,b=5,c=5,则a==b的值为1,而1==c的结果为0
a==b,b==c是分别判断a和b以及b和c关系运算
补充,楼上说a==b==c是先执行b==c是错误的,因为C语言中只有赋值运算符和单目运算符具有右结合性,故运算对象b必然先于左侧的"=="结合。
再次补充:这不是赋值的问题,没有赋值运算符,而是关系运算

回答2:

有区别,前者执行b==c,a==b,正好与后者相反,顺序不同。 结果不一定相同,和计算机的精度有关!

回答3:

在c语言中a==b==c与a==b,b==c有区别的
a==b==c意思是将a和b的值等于c,而a==b,b==c而这一句是a的等于b,b的值等于c.比如你是在对a,b进行判断:if(a==b==c)与if(a==b||b==c)严格说是不太一样的

回答4:

有区别,前者先执行b==c,后执行a==b,正好与后者相反。顺序不同,但结果相同。

回答5:

涉及到一个谁先把值赋给谁的区别。其他没啥区别。