为什么这个不等式在C中是错的



任何人都可以告诉我,为什么-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

相关内容

  • 没有找到相关文章

最新更新