C ++同名的局部变量保持循环之间的值

时间:2015-06-13 19:12:44

标签: c++ loops for-loop local-variables

我的C ++代码中有以下2个循环:

for (int hcount = 0; hcount < height; hcount++)
    {
        for (count = 0; count < width; count++)
        {
            cout << character;
        }
        cout << endl;
    }

cout << endl;

for (int hcount = 0; hcount < height; hcount++);
{
    for (count = 0; count < width; count++)
    {
        cout << character;
    }
    cout << endl;
}

我遇到的问题是在第一个循环中使用变量hcount之后,第二个循环中的变量hcount将使用它在第一个循环中的值进行初始化。我不知道为什么这是因为两者都被初始化为似乎是局部变量并且设置为等于0.

1 个答案:

答案 0 :(得分:5)

问题在于:

for (int hcount = 0; hcount < height; hcount++);

您使用;结束循环,这是一个无操作。 hcount在任何情况下都只在循环范围内可见。在循环执行之后(即在;之后),内循环开始执行。您的调试器可能会显示hcount所占用的最后一个值。