在我的代码中,我有一个 for 循环,如下所示:
for(unsigned int n=10; n > 1; --n)
{
std::cout << n << std::endl;
}
我期望输出:
9, 8, 7, 6, 5, 4, 3, 2, 1
我得到的输出:
10, 9, 8, 7, 6, 5, 4, 3, 2
我在使用 gnu/g++ 时得到了预期的输出,但在 MSVC 2010 中却没有。
我知道我通过执行以下操作获得了该循环的预期结果:
for(unsigned int n=9; n > 0; n--)
{
std::cout << n << std::endl;
}
有没有其他人遇到这种行为,或者我是否以某种方式不小心抛出了某种魔法开关?
最佳答案
那里没有魔法,递减发生在循环的第一次迭代之后。这就是 for
循环的工作原理。是 n--
还是 --n
都没有区别。
关于c++ - MSCV 2010 --someNumber 运算符的不正确行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365808/