You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么在C语言中-5<-2<-1不等式表达式返回0而非预期的1(真)?

C语言中-5<-2<-1返回0的原因

核心原因是C语言的运算符优先级和结合性规则:

  • 小于号<是左结合的运算符,所以表达式会从左到右依次求值,而非你预期的数学上的连续比较逻辑。
  • 第一步先计算-5 < -2,这个表达式的结果为逻辑真,在C语言中会用整数值1表示。
  • 第二步把第一步的结果代入后续运算,变成计算1 < -1,这个表达式的结果为逻辑假,对应整数值0,所以最终输出就是0。

如果要实现数学上「-5小于-2,且-2小于-1」的判断逻辑,需要写成逻辑与连接的形式:

printf("%d", -5 < -2 && -2 < -1);

此时输出就是你预期的1。

内容的提问来源于stack exchange,提问作者Sofia Lazrak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:36:00