1. bool
引入 #include
#include<stdio.h>
#include<stdbool.h>
int main()
{
bool b = 6 > 5;
bool t = false;
printf("%d\n", b); // 1
printf("%d\n", t); // 0
t = 2;
printf("%d\n", t); // 1
return 0;
}
2.逻辑运算
- 逻辑运算 是对逻辑量进行的运算
- 结果只有 0 或 1
- 逻辑量是 关系运算 或 逻辑运算 的结果
运算符:
- !
- 描述:逻辑非
- 示例:!a
- 结果:如果 a = true,返回false;如果 a = false,返回 true
- &&
- 描述:逻辑与
- 示例:a && b
- 结果:如果 a = true,b = true,返回true;否则 返回false
- ||
- 描述:逻辑或
- 示例:a || b
- 结果:如果 a = true 或者 b = true,返回true;如果 a = false,b = false,返回false
3.优先级
排序:
1. !
2. &&
3. ||
整体排序:
- 运算符:(),结合性:从左到右
- 运算符:! + - ++ –,结合性:从右到左(单目的+ 和 -)
- 运算符:* / %,结合性:从左到右
- 运算符:+ -,结合性:从左到右
- 运算符:< <= > >=,结合性:从左到右
- 运算符:== !=,结合性:从左到右
- 运算符:&&,结合性:从左到右
- 运算符:||,结合性:从左到右
运算符:= += -= *= /= %=,结合性:从右到左
4.短路
逻辑运算是 从左到右 进行的,如果左边的结果 已经能够决定结果了,就不做右边的计算了
- 对于 &&,左边是 false,就不做右边的计算了
- 对于 ||,左边是 true,就不做右边的计算了
不要把 赋值,复合赋值组合 写进表达式
#include<stdio.h>
int main()
{
int a = -1;
if(a > 0 && a++ > 1){
printf("OK\n");
}
printf("%d\n", a); // -1
return 0;
}