为什么以下不会出错?
for (int i=0; i<10; ++i) // outer loop
{
for (int i=0; i<10;++i) // inner loop
{
//...do something
}
//...do something else
}
Run Code Online (Sandbox Code Playgroud)
我理解它的方式,大括号({...})中的变量只在这些大括号内.但是内环在外环的支撑内.因此,一旦我声明int i=0内部循环,我不应该得到有关多个定义的错误吗?
fbr*_*eto 15
实际上,您正在创建一个与另一个变量同名的新变量.由于它们位于不同的范围内,因此允许这样做,并且内部范围中的变量"拥有"该名称.您将无法访问i内部范围内的外部范围.
for循环声明本身是for循环范围的一部分,因此在第二种情况下计算为内部范围的一部分i.