Dac*_*hao -1 visual-c++ c++11 c++14
我的C++代码如下:
#include <iostream>
using namespace std;
int main() {
int i = 0;
cout << (i=0) << endl;
if(i=0) {
i=1;
}
cout << i;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么(i=0)等于0?
您已将赋值运算符'='与等于运算符'=='混淆.
因此,您的if语句if(i=0)不会检查 i是否等于0,而是将 i 赋值为 0.并且由于该分配成功,if因此我随后被赋予了声明中的值.
编辑:
根据要求:为什么"cout <<(i = 0);" 推出"0"?
cout<<(i=0)<<endl;打印为零,因为再一次i=0是赋值语句,而不是比较语句.它不是将i比较为0然后打印结果,它将i 分配给0然后打印i.由于i为0,因此打印字符"0".