1 程序中的短路规则
-
逻辑或操作符
||
从左到右开始计算- 当遇到为真的条件时停止计算,整个表达式为真
- 所有条件为假时表达式才为假
-
逻辑与操作符
&&
从左向右开始计算- 当遇到为假的条件时停止计算,整个表达式为假
- 所有条件为真时表达式才为真
2 编译器如何处理逻辑表达式中 || 和 && 的混合运算
-
逻辑表达式中,
&&
比||
具有更高的优先级 -
在
&&
和||
混合运算时- 整个表达式被看作是
||
表达式 - 编译器从左向右开始计算每一个
&&
表达式 - 最后计算
||
表达式,当某个&&
表达式的值为真时,停止计算,整个表达式的值为真。
- 整个表达式被看作是
-
示例:逻辑表达式中 || 和 && 的混合运算
-
Demo
#include <sdtio.h> int main() { int i = 0; int j = 0; int k = 0; ++i|| ++j&& ++k; // <=> (1 && ++i) || (++j && ++k) printf("i = %d ",i); // 1 printf("j = %d ",j); // 0 printf("k = %d ",k); // 0 return 0; }
-