我注意到一个 for 循环的奇怪行为......
情况1:
让我们对 i 变量进行内部初始化
for ( int i=10; i <=10; i++)
{
std::cout << i;
}
return 0;
输出:
10
案例二:
现在我们在循环外初始化 i
int i = 10;
for ( ; i <=10; i++)
{
std::cout << i;
}
return 0;
输出:
Nothing will be print
案例3:
初始化与 i 无关的任何变量:
int i = 10;
for ( int k = 0 ; i <=10; i++)
{
std::cout << i;
}
return 0;
输出:
10
问题
循环条件的结果如何取决于我们初始化变量 i 的位置?
更新结果
我使用 degugger 跟踪代码,VS 2010 在案例 2 中确实跳过了一个循环。但是 g++ 运行良好。也许编译器中的错误?
Fianal 结果 重新启动后,它可以正常工作。天地之间的东西。对不起,无用的问题......