四种变量的各特性对比
作用域 | 存储位置 | 生命期 | |
全局静态变量 | 本文件(定义该变量的文件)的整个程序 | 静态存储区 | 整个程序的生命期 |
全局变量 | 所有文件的整个程序 | 静态存储区 | 整个程序的生命期 |
局部静态变量 | 局部作用域 | 静态存储区 | 整个程序的生命期 |
局部变量 | 局部作用域 | 栈 | 该局部子程序(循环、函数等)的生命期 |
局部变量改为静态后,改变了存储方式,即改变了它的生存期。
全局变量改为静态后,改变了作用域,缩小了适用范围。
需要注意的是,局部变量可以和全局变量重名,同时便屏蔽了全局变量,若想使用全局变量,需要加操作符::