在利用 && 和 || 等操作运算符进行逻辑运算时,只要最终的运算结果可以确定,运算就终止。
比如:
a=3,b=3,那么(a3)&&(b=3),因为两边均为真,所以与运算&&结果为真;
a=3,b=3,那么(a3)||(b=3),因为左边已经为真,无论右边是否为真,或运算||结果都为真,所以(a3)运算完后结果确定,运算到此结束,不需要再去判断(b=3)。
c
#include <stdio.h>
int main() {
int a = 3, b = 3;
(a = 4) && (b = 5);
printf("a的值为%d, b 的值为%d\n",a,b);
(a = 1)||(b = 7);
printf("a 的值为%d, b 的值为%d\n", a, b);
// system("pause");
return 0;
}
c
a 的值为4, b 的值为5
a 的值为1, b 的值为5
请按任意键继续. . .
(a = 1)||(b = 7);该语句触发短路求值,语句中的(b = 7)并没有执行到,所以b还是5。