我不小心输入了=!
代替!=
这在系统中造成了一个巨大的错误,但在一段时间内未被发现;从那以后我已经修复了它,但我很好奇是什么=!
does.
我有这样的事情
void foo(int param)
{
int a = 0;
...
if (a =! param)
{
// never got here even when `a` was not equal to `param`
}
...
}
有人可以解释一下上面的内容吗if
声明正在评估?
这个表达式:
a =! param
赋值!param
to a
. !param
是在布尔上下文中计算的参数的否定版本。
赋值运算符返回右侧的值,因此,if (a = !param)
还执行if
身体,如果!param
是真的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)