在C语言中,“与”、“或”和“非”是三种基本的逻辑运算符,分别用符号 `&&`、`||` 和 `!` 表示。这些运算符用于连接两个表达式,并根据它们的值来生成一个新的布尔值(真或假)。
逻辑与(&&):
当两个表达式都为真时,结果为真;否则为假。
```c
if (a > 0 && b > 0) {
printf("a和b都大于0\n");
} else {
printf("a或b不大于0\n");
}
```
逻辑或(||):
当至少有一个表达式为真时,结果为真;只有当两个表达式都为假时,结果为假。
```c
if (a > 0 || b > 0) {
printf("a或b大于0\n");
} else {
printf("a和b都不大于0\n");
}
```
逻辑非(!):
对一个条件进行取反操作。如果条件为真,则结果为假;如果条件为假,则结果为真。
```c
if (!a) {
printf("a为假\n");
} else {
printf("a为真\n");
}
```
运算优先级
逻辑非 `!` 的优先级最高。
逻辑与 `&&` 的优先级次之。
逻辑或 `||` 的优先级最低。
如果需要改变优先级,可以使用小括号。例如:
```c
if (!(x > 0) && (x % 2 == 0 || x % 3 == 0)) {
// 表达式解释:
// 1. !(x > 0) 先计算,如果x不大于0,结果为真(1),否则为假(0)
// 2. (x % 2 == 0 || x % 3 == 0) 计算括号内的表达式,如果x能被2整除或能被3整除,结果为真(1),否则为假(0)
// 3. !(x > 0) && (x % 2 == 0 || x % 3 == 0) 最终结果为真(1)当且仅当x不大于0且x能被2整除或能被3整除
}
```
总结
在C语言中,“与”、“或”和“非”运算符用于进行逻辑运算,广泛应用于条件语句和循环语句中。了解它们的优先级和使用方法可以帮助编写更清晰、高效的代码。