逻辑&和逻辑|两边的表达式都会执行(条件&&也是两边都要判断),而条件||如果在其左边的表达式是正确的,那么右边不会执行。


#include <iostream>
using namespace std;

int main()
{
int a=2,b=-1;
if(a>1||(b++==0)) cout<<"yes\n";
cout<<a<<" "<<b<<endl;
if(a>1|(b++==0)) cout<<"yes\n";
cout<<a<<" "<<b<<endl;

return 0;
}

yes
2 -1
yes
2 0


另外,&,| 也可以用于二进制运算。两个数字对应二进制位比较进行10(真假)与、或计算。

#include <iostream>
using namespace std;

int main()
{
int a=(1<<4)-1,b=0;
int c=a&b;
cout<<c<<endl;
c=a|b;
cout<<c<<endl;
return 0;
}

0
15