这是代码的一部分
int main()
{
int x=5,y=10;
if(x=!y)
{
cout<<"h";
}
else
{
cout<<"p";
}
getch();
}
Run Code Online (Sandbox Code Playgroud)
输出是p,请解释,代码如何工作和意义x=!y.
看起来像是一个产生有效代码的拼写错误.扩大它有助于 -
if (x = (!y))
Run Code Online (Sandbox Code Playgroud)
因为y是10,!y== 0,并且赋值本身会产生一个值.特别是值为x = 00,因此测试评估为0,这就是你得到结果的原因.
但是在这种情况下写这是一个疯狂的事情,大概是什么,或者应该是什么
if (x != y)
Run Code Online (Sandbox Code Playgroud)
即,不等于.