C 语言逻辑运算符:组合判断,构建更复杂的条件

各类资料学习下载合集

​https://pan.quark.cn/s/8c91ccb5a474​

在 C 语言编程中,我们已经学习了如何使用比较运算符(如 ​​==​​​, ​​<​​​, ​​>​​)来判断两个值之间的关系,从而得到“真”或“假”的结果。但很多时候,我们需要根据多个条件的组合来进行判断。例如,判断一个人是否符合“年龄大于 18 岁 并且 拥有驾驶执照”,或者判断一个订单是否满足“金额超过 100 元 或者 是 VIP 用户”。

这时,我们就需要用到 C 语言的逻辑运算符。逻辑运算符用于连接和操作这些“真”或“假”的逻辑值,从而构建出更复杂、更强大的条件表达式。

今天,我们就来深入学习 C 语言中的三个基本逻辑运算符:逻辑非、逻辑与和逻辑或,并通过详细的代码示例来展示它们的用法和特性。


1. C 语言中的“真”与“假”

在深入了解逻辑运算符之前,需要再次强调 C 语言中对“真”和“假”的表示方式(尤其是在 C99 标准引入 ​​_Bool​​ 类型之前,以及在很多实际应用中):

  • 假 (False):用整数 0 表示。
  • 真 (True):用任何非零整数表示。通常为了方便和习惯,我们用 1 表示真。

逻辑运算符的操作数通常是比较表达式的结果(它们返回 0 或 1),或者任何整数值。逻辑运算符的运算结果也是整数 0 或 1。


2. 逻辑非运算符 (​​!​​)

逻辑非运算符是一个单目运算符,它只需要一个操作数,并且会将其逻辑值取反。

  • 如果操作数为真(非零),则 ​​!​​ 运算符返回假(0)。
  • 如果操作数为假(0),则 ​​!​​ 运算符返回真(1)。

你可以简单理解为:​​!0​​ 是 1,​​!任何非零值​​ 是 0。

语法:

!expression

示例:

int is_valid = 1; // 假设 1 表示真
int is_empty = 0; // 假设 0 表示假

printf("!is_valid 的结果是: %d\n", !is_valid); // 预期: !1 -> 0
printf("!is_empty 的结果是: %d\n", !is_empty); // 预期: !0 -> 1
printf("!5 的结果是: %d\n", !5); // 预期: !非零 -> 0
printf("!0 的结果是: %d\n", !0); // 预期: !0 -> 1

3. 逻辑与运算符 (​​&&​​)

逻辑与运算符是一个双目运算符,它需要两个操作数。只有当两个操作数都为真时,​​&&​​ 运算符的结果才为真。如果其中任何一个操作数为假,结果就为假。

这相当于日常生活中的“并且”关系。

语法:

expression1 && expression2

真值表:

expression1

expression2

expression1 && expression2

真 (非零)

真 (非零)

真 (1)

真 (非零)

假 (0)

假 (0)

假 (0)

真 (非零)

假 (0)

假 (0)

假 (0)

假 (0)

示例:

int age = 25;
int has_license = 1; // 1表示有驾照

// 判断是否成年且有驾照
int is_eligible = (age >= 18 && has_license);
printf("成年 && 有驾照 (%d >= 18 && %d): %d\n", age, has_license, is_eligible); // 预期: (真 && 真) -> 1

age = 16;
has_license = 1;
is_eligible = (age >= 18 && has_license);
printf("成年 && 有驾照 (%d >= 18 && %d): %d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值