C++ cout<&书信电报;一,&;0;
我不明白为什么下面的代码会打印C++ cout<&书信电报;一,&;0;,c++,operator-precedence,C++,Operator Precedence,我不明白为什么下面的代码会打印1 1&&0与true&&false->false 为什么不打印0 #include <iostream> using namespace std; int main(){ cout << 1 && 0; return 0; } #包括 使用名称空间std; int main(){ 这一切都是关于你的 重载的按位左移位运算符运算符look up。这就是为什么为I/O重载位移位运算符是个坏主意的另一个原因。
1
1&&0
与true&&false
->false
为什么不打印0
#include <iostream>
using namespace std;
int main(){
cout << 1 && 0;
return 0;
}
#包括
使用名称空间std;
int main(){
这一切都是关于你的
重载的按位左移位运算符运算符look up。这就是为什么为I/O重载位移位运算符是个坏主意的另一个原因。请使用示例扩展您的实验,并回答以下问题:What正在调用运算符&&(std::ostream&,int)
不是类型错误?@leftaroundabout streams可隐式转换为bool
,因此您可以执行while(cin>>number){…}
@Drise,我是否应该将其编辑为重载的按位左移位运算符是的,这在学术上更为正确。优先级是语法的一部分,所以最终使用哪种类型的实现无关紧要。只需说“…直到该语言的下一个版本,在此版本中您可以重载优先级本身。
#include <iostream>
int main() {
std::cout << (1 && 0);
return 0;
}