C语言中的静态变量具有以下特点:
- 生命周期:静态变量在程序运行期间保持存在,其生命周期与程序的整个执行期间相同。与之相对的是局部变量,其生命周期仅限于其所在的代码块内。
- 作用域:静态变量的作用域为局部作用域,与其所在的函数或代码块相对应。在函数内部定义的静态变量只能在函数内部使用,而在代码块内部定义的静态变量只能在代码块内部使用。
- 初始化:静态变量的初始化只会在程序执行过程中进行一次,即使进入其作用域多次。未显式初始化的静态变量会被自动初始化为0。
- 存储位置:静态变量存储在静态数据区,该区域在程序运行期间一直存在,不会随着函数或代码块的退出而销毁。
- 默认可见性:静态变量默认情况下只能在其所在的源文件中访问,其他源文件无法直接访问。可以通过使用extern关键字声明外部变量来使其在其他源文件中可见。
总之,C语言中的静态变量具有全局可见性、持久性、唯一性和默认初始化等特点。