逻辑或运算符
短路规则
其中一个条件满足了,其他条件就不执行,条件执行由左往右
#include<iostream>
using namespace std;
int main()
{
int i = 0, j = 0;
if (++i || ++j)
{
printf("i = %d, j = %d\n", i, j);//结果为:i = 1, j = 0
}
return 0;
}
逻辑运算符的优先级问题
#include<iostream>
using namespace std;
int main()
{
int a = 2, b = 50;
if (a+=b || b)//实际为:a = a + b || b;b || b优先进行比较的出一个真值1,变成a = a + 1
{
printf("a = %d, b = %d\n", i, j);//结果为:a = 3, b = 50
}
return 0;
}