cout的输出<< 1&& 0;

时间:2018-03-09 14:17:51

标签: c++ operator-precedence

我不明白为什么以下代码会打印1

1 && 0true && false - >不同false

为什么不打印0

#include <iostream>

using namespace std;

int main(){
    cout << 1 && 0;
    return 0;
}

1 个答案:

答案 0 :(得分:44)

关于Operator Precedence

重载的按位左移位运算符operator<<(std::basic_ostream)的优先级高于逻辑AND运算符&&

#include <iostream>
int main() {
    std::cout << (1 && 0);
    return 0;
}

如果您不确定操作员的优先级,请不要犹豫使用括号。大多数现代IDE会告诉您是否需要使用它们。