【发布时间】:2023-03-04 23:15:02
【问题描述】:
我不小心输入了=! 而不是!=,这导致了系统中的一个巨大错误,该错误有一段时间未被发现;我已经修复了它,但我很好奇 =! 做了什么。
我有这样的事情
void foo(int param)
{
int a = 0;
...
if (a =! param)
{
// never got here even when `a` was not equal to `param`
}
...
}
有人能解释一下上面的if 语句正在评估什么吗?
【问题讨论】:
-
这不是被问过的吗(不,我没想到
while (x --> 0))? -
@chris 我没有运气用运算符搜索查询。
-
@ProfessorChaos,我明白这一点。很难找到您知道将依赖于搜索引擎丢弃的符号的问题。
-
@Mehrdad 并非所有内容对每个人都是显而易见的,也并非所有内容都易于搜索。我现在看到它非常微不足道。如果你认为你应该惩罚我,因为我不能像你一样思考和像你一样快,那就这样吧。
-
@ProfessorChaos:抱歉,我觉得有误会。我没有投反对票,因为我认为这很明显(完全同意你的说法),我投反对票是因为对
C operators的五秒钟搜索会告诉你不存在这样的运营商,让你认为可能还有其他事情发生.或者,如果它不会让您想到其他可能性,我至少希望读到您看过但不知道不存在的运算符如何仍然可以编译。无论如何,不要把它当作个人......我对这个问题投了反对票,而不是你!研究工作就是一切。