C语言关系运算符有哪些?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 C语言 正文

什么是关系运算符?

关系运算符,也称为比较运算符,用于比较两个值之间的关系,比较的结果是一个布尔值,在 C 语言中,它用整数来表示:

在c语言中是关系运算符
(图片来源网络,侵删)
  • :当关系成立时,结果为 1
  • :当关系不成立时,结果为 0

关系运算符通常用于 ifwhilefor 等控制语句中,以决定程序的执行流程。


C 语言中的关系运算符列表

C 语言提供了以下 6 个关系运算符:

运算符 名称 示例 描述 结果示例 (假设 a=5, b=3)
等于 a == b 检查 a 的值是否等于 b 的值。 5 == 3 结果为 0 (假)
不等于 a != b 检查 a 的值是否不等于 b 的值。 5 != 3 结果为 1 (真)
> 大于 a > b 检查 a 的值是否大于 b 的值。 5 > 3 结果为 1 (真)
< 小于 a < b 检查 a 的值是否小于 b 的值。 5 < 3 结果为 0 (假)
>= 大于等于 a >= b 检查 a 的值是否大于或等于 b 的值。 5 >= 3 结果为 1 (真)
<= 小于等于 a <= b 检查 a 的值是否小于或等于 b 的值。 5 <= 3 结果为 0 (假)

关键注意事项(非常重要!)

1 区分 (等于) 和 (赋值)

这是初学者最容易犯的错误之一。

  • 关系运算符,用于比较两个值是否相等,返回 1 或 0。
  • 赋值运算符,用于将右侧的值赋给左侧的变量。

错误示例:

在c语言中是关系运算符
(图片来源网络,侵删)
int a = 5;
if (a = 10) { // 错误!这里是将 10 赋值给 a,然后判断表达式的值
    printf("a 的值是 10\n");
}

在这个例子中,a = 10 这个表达式的值就是被赋的值 10,在 C 语言中,任何非零值都被视为“真”。if (10) 永远为真,printf 语句总会被执行。a 的值已经被错误地改成了 10

正确示例:

int a = 5;
if (a == 10) { // 正确!这里是比较 a 的值是否等于 10
    printf("a 的值是 10\n");
} else {
    printf("a 的值不是 10\n"); // 这行会执行
}

这里 a == 10 的结果是 0 (假),else 部分的代码会被执行。

2 关系运算符的优先级

关系运算符的优先级低于算术运算符(如 , , , ),但高于赋值运算符()。

示例:

int result = 5 > 3 + 2; // 等价于 5 > (3 + 2)
// 3 + 2 的结果是 5
// 所以表达式变为 5 > 5
// 结果是 0
// result 的值被赋为 0

3 关系运算符的结合性

关系运算符的结合性都是从左到右

示例:

int result = 10 > 5 > 1; // 等价于 (10 > 5) > 1
// 10 > 5 的结果是 1 (真)
// 所以表达式变为 1 > 1
// 结果是 0
// result 的值被赋为 0

这可能与你的直觉相反,如果你想要判断一个数是否在某个范围内,x 是否在 5 和 10 之间,不能写成 5 < x < 10,而应该使用逻辑运算符:

if (x > 5 && x < 10) {
    // 正确的写法
}

完整代码示例

下面是一个完整的 C 程序,演示了所有关系运算符的使用。

#include <stdio.h>
int main() {
    int a = 10;
    int b = 20;
    int c = 10;
    // 打印变量值
    printf("a = %d, b = %d, c = %d\n\n", a, b, c);
    // 使用关系运算符并打印结果
    printf("a == b 的结果是: %d\n", a == b); // 0
    printf("a != b 的结果是: %d\n", a != b); // 1
    printf("a > b  的结果是: %d\n", a > b);  // 0
    printf("a < b  的结果是: %d\n", a < b);  // 1
    printf("a >= c 的结果是: %d\n", a >= c); // 1 (因为 a 等于 c)
    printf("a <= c 的结果是: %d\n", a <= c); // 1 (因为 a 等于 c)
    // 在 if 语句中的实际应用
    if (a < b) {
        printf("\nif 条件成立: a 确实小于 b\n");
    }
    if (a == c) {
        printf("if 条件成立: a 确实等于 c\n");
    }
    if (a > b) {
        printf("这条信息不会显示,因为 a > b 为假,\n");
    }
    return 0;
}

程序输出:

a = 10, b = 20, c = 10
a == b 的结果是: 0
a != b 的结果是: 1
a > b  的结果是: 0
a < b  的结果是: 1
a >= c 的结果是: 1
a <= c 的结果是: 1
if 条件成立: a 确实小于 b
if 条件成立: a 确实等于 c

关系运算符是 C 语言中进行条件判断的基础,记住它们的核心功能是比较并返回 1(真)或 0(假),最关键的实践是严格区分 和 ,避免因赋值操作导致逻辑错误。

-- 展开阅读全文 --
头像
dede搜索页内容为何显示错误?
« 上一篇 今天
阿里云提示dede漏洞,网站如何安全修复?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]