假 ||在 MinGW 编译器 v 6.3.0-1 中给出 0
false || true giving 0 in MinGW Compiler v 6.3.0-1
这是我写的C++程序:
#include <iostream>
using namespace std;
int main() {
cout << "\n" << "false || false" << ": " << false || false;
cout << "\n" << "false || true" << ": " << false || true;
cout << "\n" << "true || false" << ": " << true || false;
cout << "\n" << "true || true" << ": " << true || true;
cout << "\n" << "false && false" << ": " << false && false;
cout << "\n" << "false && true" << ": " << false && true;
cout << "\n" << "true && false" << ": " << true && false;
cout << "\n" << "true && true" << ": " << true && true;
return 0;
}
这是输出。
false || false: 0
false || true: 0
true || false: 1
true || true: 1
false && false: 0
false && true: 0
true && false: 1
true && true: 1
有人可以向我解释为什么 false || true
给出 0
吗?我正在使用 MinGW C++ 编译器版本 6.3.0-1。
根据 C++ Operator Precedence,operator<<
的优先级高于 operator ||
(和 operator &&
),因此 cout << false || true;
将被解释为 [=14] =];你总是会打印出 false
。
要解决此问题,您应该添加括号以明确指定优先级,例如cout << (false || true);
.
这是我写的C++程序:
#include <iostream>
using namespace std;
int main() {
cout << "\n" << "false || false" << ": " << false || false;
cout << "\n" << "false || true" << ": " << false || true;
cout << "\n" << "true || false" << ": " << true || false;
cout << "\n" << "true || true" << ": " << true || true;
cout << "\n" << "false && false" << ": " << false && false;
cout << "\n" << "false && true" << ": " << false && true;
cout << "\n" << "true && false" << ": " << true && false;
cout << "\n" << "true && true" << ": " << true && true;
return 0;
}
这是输出。
false || false: 0
false || true: 0
true || false: 1
true || true: 1
false && false: 0
false && true: 0
true && false: 1
true && true: 1
有人可以向我解释为什么 false || true
给出 0
吗?我正在使用 MinGW C++ 编译器版本 6.3.0-1。
根据 C++ Operator Precedence,operator<<
的优先级高于 operator ||
(和 operator &&
),因此 cout << false || true;
将被解释为 [=14] =];你总是会打印出 false
。
要解决此问题,您应该添加括号以明确指定优先级,例如cout << (false || true);
.