我知道它是 1(正确)。
首先,我编写了如下代码:
`#include <iostream>
using namespace std;
int main(){
bool a=1;
cout << !a || a;
return 0;
}
` 但是当我运行这段代码时,输出是 0(假)!
然后我这样加上括号:
`cout << (!a||a);`
我得到了正确的答案。但为什么?为什么括号里有不同的答案?
因为
<<
的 优先级 高于 ||
,所以 cout << !a || a
解析为 (cout << !a) || a
而不是 cout << (!a || a)
。
!a
当 a
为 1
时,输出的是 0
,然后忽略 a
,因为 ||
短路并且不会将 cout
视为 false。