c++ - MSCV 2010 --someNumber 运算符的不正确行为

标签 c++ operators visual-studio-2010

在我的代码中,我有一个 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/

相关文章:

javascript - 我应该同时使用 CoffeeScript soaks 和存在运算符吗?

JAVA - 对字符的逻辑运算

visual-studio - 使用解决方案资源管理器与使用 TFS 时使用源代码管理资源管理器

c++ - C++ 中的基本类型有析构函数吗?

java - 一元运算符感叹号的错误操作数类型 Action 监听器

c++ - 如何改用求和语句来更改我的程序?

jquery - Visual Studio 2010 中使用 jquery 进行智能感知

C# 试图打开远程文件位置但 Windows 未传递凭据

c++ - 使用 C++ IO istream 对象读取导致无限循环

c++ - 如何在 SQLite 中返回零项的 SELECT 操作期间获取列名