C语言作用域(静态,普通)
作用域
- 普通局部变量
- 普通全局变量
- 静态局部变量
- 静态全局变量
普通局部变量
定义:
在 { } 中定义的变量,称为普通局部变量
使用范围:
距离最近的 { } 之间可以使用
生命周期:
距离最近的 { } 结束后,变量被释放,不可再用
注意事项:
- 未初始化的普通局部变量,初始值是随机的,VS 下无法访问
- 不同作用域下的同名普通局部变量,遵循就近原则,优先使用最近的同名变量
普通全局变量
定义:
在函数体外定义的变量,称为普通全局变量
使用范围:
当前源文件中,或其它源文件添加 extern 关键字后使用
生命周期:
整个程序执行完毕后释放
注意事项:
- 未初始化的普通全局变量,初始值为 0,可以访问
静态局部变量
定义:
在 { } 中定义的变量,并且用 static 修饰,称为静态局部变量
语法:static 数据类型 变量名;
使用范围:
距离最近的 { } 之间可以使用
生命周期:
整个程序执行完毕后释放
注意事项:
未初始化的静态局部变量,初始值为 0,可以访问,且静态局部变量只被初始化一次
静态全局变量
定义:
在函数体外定义的变量,并且用 static 修饰,称为静态全局变量
使用范围:
从定义开始后,在当前源文件中可以使用
生命周期:
整个程序执行完毕后释放
注意事项:
未初始化的静态全局变量,初始值为 0,静态全局变量只初始化一次