我不明白为什么以下代码会打印1
。
1 && 0
与true && false
- >不同false
?
为什么不打印0
?
#include <iostream>
using namespace std;
int main(){
cout << 1 && 0;
return 0;
}
答案 0 :(得分:44)
重载的按位左移位运算符operator<<(std::basic_ostream)
的优先级高于逻辑AND运算符&&
。
#include <iostream>
int main() {
std::cout << (1 && 0);
return 0;
}
如果您不确定操作员的优先级,请不要犹豫使用括号。大多数现代IDE会告诉您是否需要使用它们。