C语言中的逻辑运算符与逻辑表达式

68 阅读2分钟

一、核心前提(必记)

C 语言里判断「真 / 假」特别简单:0 代表假,非 0(正数、负数)全代表真。逻辑表达式的最终结果只有两个:✅成立为1,❌不成立为0

二、3 个核心逻辑运算符(全学会就够用)

✅ 1. 逻辑与 && → 中文意思:并且

规则:两边条件同时为真,结果才为真;有一个假,结果就假(一假则假,全真才真)白话:必须两个条件都满足,才算满足

通俗示例

c

运行

3>2 && 5>1;  // 真&&真 → 结果1(成立)
3>2 && 5<1;  // 真&&假 → 结果0(不成立)
0 && 100;    // 假&&真 → 结果0(不成立)

✅ 2. 逻辑或 || → 中文意思:或者

规则:两边条件只要有一个为真,结果就为真;两个都假,结果才假(一真则真,全假才假)白话:两个条件满足任意一个,就算满足

通俗示例

c

运行

3>2 || 5<1;  // 真||假 → 结果1(成立)
3<2 || 5<1;  // 假||假 → 结果0(不成立)
0 || -5;     // 假||真 → 结果1(成立)

✅ 3. 逻辑非 ! → 中文意思:取反、不是

规则:单目运算符(只作用 1 个条件),真变假,假变真(颠倒黑白)白话:对条件结果反过来

通俗示例

c

运行

!0;        // 假取反 → 结果1(真)
!(3>2);    // 真取反 → 结果0(假)
!100;      // 真取反 → 结果0(假)

三、逻辑表达式(最简定义)

用「逻辑运算符」把多个条件连接起来的式子,就是逻辑表达式。它的唯一作用:判断多个条件的组合是否成立,最终得到 1(成立)或 0(不成立)。

实战常用例子(一看就懂)

c

运行

// 例子1:判断年龄age在18~30之间(包含18、30)
age>=18 && age<=30;

// 例子2:判断成绩score及格(≥60) 或 加分后及格(score+10≥60)
score>=60 || (score+10)>=60;

// 例子3:判断num不是0
!num;

四、超实用特性:短路求值(必懂,写代码省坑)

C 语言逻辑运算有「偷懒」机制,能提前确定结果时,后面的条件就不计算了,这就是短路,2 种情况:

  1. && 短路:左边条件为,直接返回假,右边条件不执行;
  2. || 短路:左边条件为,直接返回真,右边条件不执行。

通俗示例(一眼看懂)

c

运行

int a=1;
0 && (a=100);  // 左边是假,&&短路,右边a=100不执行 → a最终还是1

int b=1;
100 || (b=200); // 左边是真,||短路,右边b=200不执行 → b最终还是1

✅ 极简总结(30 秒记完)

  1. 真假规则:0 = 假,非 0 = 真;表达式结果只有 1/0;
  2. 三个运算符:&&并且、||或者、!取反;
  3. 关键特性:&&遇假短路、||遇真短路。