在 C 语言中,“!” 是一个 逻辑运算符,称为 “逻辑非”(Logical NOT),它的作用是对布尔表达式取反。
✅ 一、语法含义
在 C 语言中,! 是一个逻辑运算符,用于对布尔表达式进行取反操作。
语法形式:
condition != 0 // 逻辑非
或者:
!condition // 逻辑非
✅ 二、使用示例
示例 1:逻辑非(取反)
int a = 1;
int b = 0;
printf("a != 0: %d\n", a != 0); // 输出 1
printf("b != 0: %d\n", b != 0); // 输出 0
printf("!a: %d\n", !a); // 输出 0
printf("!b: %d\n", !b); // 输出 1
输出结果:
a != 0: 1
b != 0: 0
!a: 0
!b: 1
✅ 三、逻辑运算符优先级
在 C 语言中,! 是优先级最高的逻辑运算符,它会优先于其他运算符(如 ==, &&, ||)执行。
例如:
int x = 1;
int y = 0;
int result = !x || y; // 先取反 x,再与 y 进行或运算
✅ 四、总结
| 运算符 | 含义 | 作用 |
|---|---|---|
! |
逻辑非 | 对布尔表达式取反(0 → 1,1 → 0) |
✅ 五、常见用法
-
判断一个变量是否为非零值:
if (!a) { // a 为 0 时执行 } -
在条件判断中使用:
if (!strcmp(str1, str2)) { // 字符串相等 }
✅ 六、注意点
!只能用于布尔表达式(即0或1)。- 如果用于非布尔类型(如
int,float),会自动转换为布尔类型(0是false,1是true)。
✅ 七、扩展知识
!也可以用于表达式求值,例如:int result = 5 + !5; // 5 + 0 = 5
如果你有具体代码片段或应用场景,我可以帮你进一步解释!