C 语言总共提供了三种逻辑运算符:

用逻辑运算符将两边的变量、数据或表达式连接起来,称之为逻辑表达式:

3 > 1 && 1 < 2
3 + 1 || 2 == 0
!(a + b)
!0 + 1 < 1 || !(3 + 4)
‘a’ - ‘b’ && ‘c’
注:关系表达式和逻辑表达式得到的值都是一个逻辑值,也就是表示真的 1 和表示假的 0。但是用于判断一个值是否为真时,以 0 表示假,以任何非 0 的数表示真。一个是编译系统告诉我们的结果,一个是我们让编译系统去判断的,两者方向不同。

短路求值又称最小化求值,是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值。
C 语言对于逻辑与和逻辑或采用短路求值的方式。

#include <stdio.h>
int main(void)
{
	int a = 3, b = 3;
	(a = 0) && (b = 5);
	//&&左边值为零即为假,就能判断整体为假,就跳过右边的计算
	printf("a = %d, b = %d\n", a, b);
	(a = 1) || (b = 5);
	//||左边不为零即为真,就能判断整体为真,就跳过右边的计算
	printf("a = %d, b = %d\n", a, b);
	system("pause");
	return 0;
}

更多推荐

零基础C语言入门013——逻辑运算符,与、或、非