C / C ++中按位与逻辑AND运算符有什么区别
众所周知,按位AND表示为“&”,逻辑运算符表示为“&&”。它们之间有一些根本的区别。这些如下-
逻辑AND运算符适用于布尔表达式,并且仅返回布尔值。按位AND运算符可处理整数,shortint,long,unsignedint类型的数据,并且还返回该类型的数据。
示例
#include<iostream> using namespace std; int main() { int x = 3; //...0011 int y = 7; //...0111 if (y > 1 && y > x) cout << "y is greater than 1 AND x" << endl; int z = x & y; // 0011 cout << "z = "<< z; }
输出结果
y is greater than 1 AND x z = 3
如果第一个操作数为false,则&&运算符不会评估第二个操作数。同样,||当第一个操作数为true时,该运算符不评估第二个操作数,而是&和|之类的按位运算符始终评估其操作数。
示例
#include<iostream> using namespace std; int main() { int x = 0; cout << (x && printf("Test using && ")) << endl; cout << (x & printf("Test using & ")); }
输出结果
0 Test using & 0