C语言中的逻辑运算符存在一种短路求值的求值策略,也称之为最小化求值。
只有当第一个操作数的值无法确定逻辑运算的结果时,才会对第二个操作数进行求值,该种过程在逻辑与和逻辑或运算中得到很好的体现。
#include <stdio.h>
int main()
{
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);
return 0;
}
以上程序运行结果为a=0,b=3 a=1,b=3
可以看出,当逻辑运算符左面的操作时可以确定该逻辑运算的结果时,则不再执行逻辑运算符右面的操作,这就时短路求值。