【发布时间】:2019-10-09 09:44:05
【问题描述】:
我一直在考虑一些初学者的错误,最后我发现了if 声明中的错误。我将代码扩展了一下:
int i = 0;
if (i = 1 && i == 0) {
std::cout << i;
}
我看到if 语句返回true,它cout 的i 为1。如果i在if语句中赋值为1,为什么i == 0返回true?
【问题讨论】:
-
伙计们,这不是一个错字问题。 OP 想知道为什么使用此代码输入 if 语句,因为
i设置为1。 -
还是赋值
1 && i == 0的结果? -
给初学者的建议:他们不应该使用这种“高级”的语言结构。只需单独分配变量。这也将避免序列点可能出现的问题。实际代码中的这种代码通常也会看起来很糟糕。
-
这肯定是面试题
标签: c++ if-statement