一句话理解
全局变量定义在所有函数外面,整份程序都能看见。
为什么要学
大数组常开全局,避免把巨大对象放进栈里。
讲解
全局变量默认初始化为 0。生存期从程序开始到结束。
能局部就局部。全局会让函数产生隐藏依赖,查错更难。竞赛里 vis、a[N]、dp 开全局很常见,这是为了方便和内存,不是因为全局更高级。
例子
int n;
int a[100010];
int main() {
cin >> n;
return 0;
}
n 和 a 在 main 外,默认是 0,main 里可以直接用。
常见错误
- 局部和全局同名,里面的会挡住外面的。
- 把所有东西都全局化,函数无法单独理解。