关键字static的作用:
- 声明静态变量:在函数内部使用static声明的变量称为静态变量,其作用域为该函数内部,但其生命周期与程序的运行周期一致,即在程序启动时分配空间,在程序结束时释放空间。
- 声明静态函数:使用static关键字声明的函数称为静态函数,其作用域限制在该文件内部,无法被其他文件调用,这样可以避免命名冲突和提高安全性。
- 限制变量和函数的作用域:在代码块中使用static声明的变量和函数,其作用域限制在该代码块a内部,无法被其他代码块访问。这样可以避免变量或函数的命名冲突,并且可以提高代码的可维护性。
- 保持变量的值:静态变量的值在函数调用结束后仍然保持不变,这种特性可以用来占函数之间共享数据,或者在多次调用同一函数时,保持变量的值不变,提高程序的性能。
什么是全局变量和局部变量?
- 全局变量(Global variables):全局变量是在所有函数外部定义的变量,即在整个程序的顶层定义的变量。全局变量的作用域包括整个程序可以在程序中的任何函数中使用。
- 局部变量(Local variables):局部变量是在函数内部定义的变量,即在函数的开始处定义的变量。局部变量的作用域仅限于包含它的函数,不能在函数外部访问。
局部变量的几种存储类型:
- 自动存储类(默认存储类):在函数内部定义的普通变量,默认情况下都是自动存储类。他们在函数调用时自动分配内存,在函数退出时释放内存,可以使用关键字auto显示说明自动存储类,但通常不需要显示声明。
- 静态存储类:使用static关键字声明的局部变量属于静态存储类。它们在程序执行期间一直存在,不会随函数的调用而创建或销毁。静态局部变量在首次进入函数时初始化,并在后续调用时保持其值不变。