假设以下简单代码:
for(int i=0; i < 1000; i++)
{
cout << "Outer i: " << i << endl;
for(int i=0; i < 12; i++)
{
cout << "Inner i:" << i << endl;
}
}
效果很好。两个循环中使用了相同的变量名,并且输出很好。
我是否正确理解这两个变量都是在堆栈上创建的,并且当外循环进入新的内循环时,会创建一个新的“命名空间”(可能是错误的名称..)?但是为什么会被覆盖?如果我为内部循环中的变量选择另一个名称,我也可以 i
从外部循环访问。
我有点困惑。