a||b和a&&b的陷阱

例子1:

if(a<b && c>d)

if(a<b && c>d)

因为关系操作符产生的或是0或是1,所以这两条语句的结果是一样。

例子2:

int i = 1;
int j = 2;
if (i & j)
{
cout<<"TRUE"<<endl;
}
else
{
cout<<"FALSE"<<endl;
}


if (i && j)
{
cout<<"TRUE"<<endl;
}
else
{
cout<<"FALSE"<<endl;
}

结果如下:


注:

1、逻辑与&&和逻辑或||都具有短路求值的特性,在使用时需要注意,如果使用不当可能会给你带来致命的陷阱。

2、明确区分逻辑或(与)和位或(与)的差异。

猜你喜欢

转载自blog.csdn.net/u010248077/article/details/80710573
B
a^b
A/B
A*B
今日推荐