关系与逻辑

关系运算比较大小得到真假;逻辑运算把多个真假条件组合起来。C 里真常用非 0,假是 0。

1. 例子

C
1int a = 5, b = 10;
2printf("%d\n", a > b); // 0
3printf("%d\n", a != b); // 1
4 
5if (a > 0 && b > 0) {
6 printf("都是正数\n");
7}
8 
9if (!(a == b)) {
10 printf("不相等\n");
11}

2. 概念:短路求值

&& 左边为假时,右边可能不执行;|| 左边为真时,右边可能不执行。可用于防空指针:

C
1if (p != NULL && p->count > 0) {
2 /* 先保证 p 非空,再访问成员 */
3}

3. 易错