c - 在 C 中使用多个逻辑运算符无法正确比较
问题描述
以下代码应该打印为 true。但它打印错误。有谁知道为什么会这样?
int main(void)
{
int a=15,b=10, c=1;
if(a>b>c)
{
printf("true");
} else
{
printf("false");
}
}
解决方案
在 C 中,a>b>c
表示(a>b)>c
。这并不意味着(a>b)&&(b>c)
。
的值为a>b
0 或 1(分别为 false 或 true)。因为c
是 1,这些可能的值都不能大于c
,所以比较总是假的。
推荐阅读
- ios - iPad上奇怪的UITextField(仅限)约束行为
- angular5 - 组件 ngOnInit 中的 Angular 订阅
- java - 如何在 Maven 项目之间进行聚合
- vim - Supertab:在特定单词后跟空格后自动完成
- laravel - 使用 Laravel 和 BackPack 的自定义逻辑
- ios - Core Data 自定义结构数组
- django - 如何在 django 中编译保存在数据库中的模板
- django - 通过 AWS Application Load Balancer 提供 Django 内容
- powershell - 如何将数组元素复制到 ReadOnlyCollection?
- java - 从 Firebase 存储到 Recycler 视图的图像