任何人都可以告诉我,为什么-5<-2<-1
在C中返回0
,而我希望它返回1
(True(?
printf("%d", -5<-2<-1);
此表达式
-5<-2<-1
相当于
( -5<-2 ) < -1
因为运算符<从左到右求值。
由于-5
小于-2
,则子驱策的值
( -5 < -2 )
为整数值CCD_ 6。所以你有
1 < -1
并且该表达式的结果是逻辑错误的0。
来自C标准(6.5.8关系运算符(
6每个运算符<(小于(,>(大于(,<=(小于或等于(,并且>=(大于或等于(如果指定的关系为true,如果为false则为0。结果具有类型int。
你的意思似乎是- 5 < -2 && -2 < -1