c语言静态变量和全局变量有甚么不同
C语言中的静态变量和全局变量在作用域和生命周期上有所不同。
1. 作用域:
- 全局变量:全局变量定义在函数外部,可以被程序中的所有函数访问,即具有全局作用域。
- 静态变量:静态变量定义在函数内部,只能在定义它的函数中使用,即具有局部作用域。
2. 生命周期:
- 全局变量:全局变量在程序开始履行时被创建,在程序结束时烧毁,其存储空间一直存在于全部程序运行期间。
- 静态变量:静态变量在程序开始履行时被创建,在程序结束时烧毁,其存储空间也一直存在于全部程序运行期间。
3. 初始值:
- 全局变量:全局变量没有显式地初始化时,默许初始化为0还是空指针,也能够在定义时指定初始值。
- 静态变量:静态变量没有显式地初始化时,默许初始化为0还是空指针,也能够在定义时指定初始值。
4. 访问权限:
- 全局变量:全局变量可以被程序中的任何函数访问和修改。
- 静态变量:静态变量只能在定义它的函数中访问和修改。
总结:静态变量和全局变量在作用域上的不同是静态变量具有局部作用域,而全局变量具有全局作用域;在生命周期上的不同是静态变量和全局变量的存储空间都一直存在于全部程序运行期间。
TOP