1. 有趣问题
- 逻辑运算符&&,||和!真的很简单吗?
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
int k = 0;
// 等价于(true && ++i) ||(++j && ++k)可见整个表达式为或运算,从左向右进行
// 或运算,先计算或左边的(true && ++i)结果为true,根据“或”的短路规则,不再
// 进行右边的(++j && ++k)。
++i || ++j && ++k;
printf("%d\n", i); // i为1
printf("%d\n", j); // 0
printf("%d\n", k); / 0
return 0;
}
2. 程序中的短路
- ||从左向右开始计算
- 当遇到为