首页 > 解决方案 > 为什么可以在 C 中的循环内定义变量?

问题描述

为什么这段代码没有给出重新定义错误:

int main(void)
{
    for (int i = 0; i < 2; i++)
    {
        int number = 5;
    }
}

而这段代码确实:

int main(void)
{
    int number = 5;
    int number = 5;
}

标签: cloopsredefinition

解决方案


Redfinition 错误是编译时问题,而不是运行时问题。您不会在循环中收到重新定义错误,因为您number在该范围内只有一个声明。

在第二个片段中,您number在同一范围内有两个声明,因此出现错误。


推荐阅读