c语言中这个a<b<c什么意思

Python013

c语言中这个a<b<c什么意思,第1张

int a = 1, b = 2, c = 3

a = b = c 意思是将 c 的值赋给 b,再赋给 a,a,b,c 都等于3。

a = b == c, = 的优先级低于 ==,会先判断 b == c 结果为假,就是0值,然后将0值赋给 a,也就是执行后,a = 0, b = 2, c = 3。

a == (b=c),会先讲 c 值赋给 b, 然后判断 a 是否等于 b,表达式得到一个0值(a不等于b),但该判断不会影响 a 的值,结果 a = 1, b = 3, c = 3。

a == (b == c) 会先判断 b是否等于c,结果为0,再判断 a 是否等于 0,结果也是0。但该判断不影响a,b,c的值。还是 a = 1, b = 2, c = 3.

因为以C语言标准规定的表达式逻辑,a<b<c等效于(a<b)<c队医子表达式a<b的结果必然是真(1)或假(0),所以其实就是1<c或0<c显然和想要表达的b∈(a,c)不同,a<b&&b<c才是合逻辑的表达

while(a<b<c)

这里的a<b<c求的是一个逻辑值,正确为1,错误为0,a=1,b=2,c=2,首先a<b成立,逻辑值为1,然后1<c,也成立,所以满足循环条件(逻辑值为0时不满足,为1满足),开始循环,交换a,b位置,再c--,,a=2, b=1, c=1,此时再循环,a<b不成立,逻辑值为0,0<c成立,逻辑值为1,满足循环条件,继续循环,得到 a=1, b=2, c=0,此时a<b不成立,逻辑值为0,0<c不成立,逻辑值为0,退出循环,输出a , b, c就得到a=1,b=2,c=0了