对于循环帮助c ++大学

时间:2017-10-26 14:59:00

标签: c++ for-loop

我正在尝试理解以下代码如何在没有任何无限循环的情况下运行。

int main()
{
    int count = 1;
    for (;count <= 5; count++)
    {
        int count = 1;
        cout << count << "\n";
    }
    system("pause");
    return 0;
}

3 个答案:

答案 0 :(得分:5)

循环体中的内部int count = 1声明一个值为1的新变量,该变量与循环count不同。

答案 1 :(得分:3)

变量count不相同,它们有不同的范围:

int count = 1; ///--------------- Scope 1
for (;count <= 5; count++)
{ ///---------------------------- Scope 2
    int count = 1;
    cout << count << "\n";
} ///---------------------------- End Scope 2
///------------------------------ End Scope 1

因此,int count = 1中使用了范围2中的cout,因为它被解析为最低级别的范围。但是一个for循环范围已经完成,这个计数被销毁并且使用了范围1中声明的计数。这就是你没有得到无限循环的原因。

答案 2 :(得分:1)

第二个计数与第一个计数不同。您使用新的内存地址声明一个新变量。假设第一个计数的内存地址是a。然后第二个计数的存储器地址是b。因此,存储器地址b的变量等于1,但它决不会影响地址a的计数。您可以通过编写cout&lt;&lt;来检查这一点。 &amp; count&lt;&lt; “\ n”在声明新计数之前和之后。这将为您提供他们的记忆地址。