关系运算符

算术比较(关系运算符)

C语言提供了6个关系运算符用于进行数值的大小比较,具体如表3-1所示:

运算符含义(比较)示例结果(真=1,假=0)
<左操作数小于右操作数2 < 31 (true)
<=左操作数小于等于右操作数5 <= 51 (true)
==左操作数等于右操作数2 == 30 (false)
!=左操作数不等于右操作数2 != 31 (true)
>左操作数大于右操作数5L > 3L1 (true)
>=左操作数大于等于右操作数6 >= 120 (false)

1. 运算结果与类型

  • 返回值类型:关系运算的结果本质是 int 类型。
  • 真/假表示:比较为真时结果为 1,为假时结果为 0。
  • 布尔映射:若引入 <stdbool.h>,1 对应 true,0 对应 false。

2. 逻辑/布尔表达式与存储

包含关系运算符的表达式称为逻辑表达式或布尔表达式(结果只有两种状态)。它们可以直接赋值给 bool 类型变量:

#include <stdio.h>
#include <stdbool.h>  // 需引入以使用 bool, true, false

int main(void)
{
    bool result = 5 < 4;  // 5小于4为假,result 存储为 0 (false)
    printf("%d\n", result);  // 输出 0
    
    bool valid = 2 != 3;  // 2不等于3为真,valid 存储为 1 (true)
    printf("%d\n", valid);  // 输出 1
    return 0;
}Code language: PHP (php)

非0即真规则:任何非0值赋给 bool 变量都会转换为 true(存储为1),0转换为 false(存储为0)。

3. 核心易错点:== 与 = 的区别

  • ==(双等号):关系运算符,用于判断左右两边的值是否相等。
  • =(单等号):赋值运算符,用于赋值。

经典陷阱:

int a = 5;
if (a = 3) { ... }   // 错误:把3赋值给a,表达式值为3(非0即真),条件永远成立
if (a == 3) { ... }  // 正确:判断a是否等于3Code language: JavaScript (javascript)

4. 代码示例解析

原文示例代码:

#include <stdio.h>
#include <math.h>    // 本例未用到数学函数,可省略
#include <stdbool.h> // 使用 bool 类型必须包含

int main(void)
{
    bool result = 1 <= 3;  // 1小于等于3,条件成立,结果为1 (true)
    printf("%d", result);  // 输出 1
    return 0;
}Code language: PHP (php)

5. 补充实例与注意事项

表达式结果说明
2 != 31 (true)不相等成立
5L > 3L1 (true)长整型比较,成立
6 <= 121 (true)成立
2 == 30 (false)不相等,为假
5 < 40 (false)不成立
1.2 >= 1.30 (false)浮点数比较,不成立

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注