以下是引用alading664在2007-4-5 22:51:09的发言:
这样定义,域作用小的i会覆盖掉域作用大的i。
这样定义,域作用小的i会覆盖掉域作用大的i。
我同意aways的说法,全局变量是定义在 "函数" 之外的.定义在 "复合语句" 之外的并不是全局变量,而是外层大作用域的局部变量,它的空间也只有才进入函数时才会分配,只不过大作用域的局部变量由于作用域大,容易使初学者混淆而已.内层局部变量可以屏蔽外层的局部变量.函数与全局变量一样都有全局性质,因此,全局变量应该与函数是处于同一等级的,局部变量定义在函数内部,等级又要低一些.
C++允许在for循环语句中定义局部变量,这时的i被视为内层的局部变量,屏蔽了外层的局部变量i,而不是屏蔽"全局变量i"