C 语言逻辑非 (!) 运算符

17 Mar 2025 | 6 分钟阅读

本节将讨论 C 语言中的逻辑非 (!) 运算符。正如我们已经知道的,逻辑运算符用于通过组合给定表达式上的两个或多个条件来执行逻辑运算。如果操作数的逻辑条件为真,则运算符返回布尔值 true 或 1。否则,它返回布尔值 false 或 0。逻辑运算符分为三部分:逻辑与、逻辑或和逻辑非运算符。

Logical NOT (!) Operator in C

逻辑与运算符用于检查给定表达式中两个或多个操作数的条件,如果这些条件都为真,则 AND 运算符返回 true 或非零 (1) 值。否则,它返回 false 或 0 值。因此,我们可以说逻辑与运算符只能在两个操作数条件都为真的表达式中执行,如果任何一个条件不为真,则返回 0。逻辑与运算符表示为双与号 '&&' 符号。

语法

逻辑或运算符用于检查两个操作数(A & B)的条件,如果其中一个操作数或表达式为真,则运算符返回布尔值 true。同样,如果没有一个表达式为真,它返回 false 或零值。逻辑或运算符表示为双竖线 '||' 符号。

语法

逻辑非运算符

逻辑非运算符表示为 '!' 符号,用于反转任何给定表达式或条件的结果。如果表达式的结果为非零或 true,则结果将反转为零或 false 值。类似地,如果条件的 C 结果为 false 或 0,则 NOT 运算符会反转结果并返回 1 或 true。

例如,假设用户输入一个非零值 5,逻辑非 (!) 运算符将返回 0 或 false 布尔值。而如果用户输入零 (0) 值,则运算符返回 true 布尔值或 1。

逻辑非运算符的语法

在这里,'!' 符号表示逻辑非运算符,它会反转给定条件的 C 结果。

逻辑非运算符的真值表

以下是 C 语言中逻辑非运算符的真值表

示例 1:使用逻辑非运算符的 C 程序

让我们创建一个简单的程序来反转 C 编程语言中操作数的给定条件。

输出

The return value = 0
The return value = 1
The return value = 0
The return value = 1

在上面的程序中,我们使用 NOT (!) 运算符来反转各种表达式的结果,例如变量 x 等于 5 的条件,这是 true。但 NOT 运算符反转了结果并返回 0。类似地,我们定义了条件 (x!=5),但逻辑运算符更改了其结果并返回 1,依此类推。

示例 2:用于执行逻辑非运算符的输入数字程序

让我们创建一个简单的程序,使用 C 编程语言中的逻辑非 (!) 运算符来获取整数数字的反转结果。

输出

Enter the number: 7
The result of x: 0

在上面的程序中,我们从用户那里输入一个整数 7 并将其存储到 x 变量中。之后,逻辑非 (!) 运算符反转 x(非零)的值并返回零 (0) 来打印 x 的结果。

第二次执行

Enter the number: 0
The result of x: 1

类似地,我们从用户那里输入零 (0),并使用逻辑非 (!) 运算符将 x 的值反转为非零值,即 1。

示例 3:使用逻辑与 (&&)、或 (||) 和非 (!) 运算符查找闰年的程序

让我们编写一个简单的程序,使用 C 语言中的逻辑与 (&&)、逻辑或 (||) 和逻辑非 (!) 运算符来检查给定年份是否为闰年。

输出

Enter the year: 2020
2020 is a leap year.

在上面的程序中,我们输入 2020,然后通过定义 if...else 语句来检查给定的年份。在此语句中,我们定义了两个条件;

  1. 给定的年份除以 400,结果等于 0。然后,我们使用逻辑或运算符来检查左侧或右侧操作数的条件是否为真。
  2. 在第二个条件中,给定的年份被 4 和 100 整除。但是当我们用 4 整除 2020 时,结果等于 0。类似地,我们用 100 整除年份 2020,结果也不等于 0。因此,两个条件都为真,显示“2020 是闰年”。
  3. 但是当我们输入年份 2021 时,它会打印出“2021 不是闰年”。

第二次执行

Enter the year: 2021
2021 is not a leap year.

示例 4:使用 AND、OR 和 NOT 逻辑运算符检查不同条件的程序

让我们编写一个程序,在 C 中使用 AND、OR 和 NOT 逻辑运算符来演示给定操作数的多个条件。

输出

The AND (&&) operator is said: Both conditions are true.
The OR (||) operator is said: Only one condition is true.
The NOT (!) operator: Here, both conditions are true. But, the status of the condition is reversed as false.

下一个主题自引用结构