作用域:局部 vs 全局

同名时局部遮蔽全局 —— 每段代码看到的 x,取决于它身处哪个作用域
源代码 · 作用域分层 全局作用域(文件级) func() 的局部作用域 { } main() 的局部作用域 { } int x = 1; // 全局 x void func() { int x = 100; // 局部 x,遮蔽全局 cout << x; // → 100 } int main() { cout << x; // → 1(无局部,用全局) func(); ::x = 7; // :: 强行访问全局 } 可见性 内存中的变量 全局 x 作用域:定义点 → 文件结束 1 func() 内的局部 x 作用域:仅 func 的 { } 内 100 func 返回 → 局部 x 随帧销毁