一、C语言的存储区
局部变量、静态变量与栈区、堆区、静态区的关系
二、static关键字
static在C语言中是关键字,static关键字在C语言中主要是用来修饰局部变量、全局变量、自定义函数。
三、static的具体用法
1.static修饰局部变量
-
static修饰局部变量,局部变量变成静态变量,从栈区变为静态区。静态区的变量从创建后直到整个程序结束之后才释放。
-
static修饰局部变量是改变了局部变量的生命周期,使其生命周期变长.
-
static修饰局部变量是改变了局部变量的储存位置,使得变为静态区。
注意:static修饰局部变量,是改变了局部变量的生命周期而不是作用域。
2.static修饰全局变量
- 全局变量本身具有外部链接属性,可以在外部源文件通过extern链接使用。
- static修饰全局变量后,使全局变量不在有外部连接属性,不可以在外部源文件通过extern链接使用。
- static修饰全局变量使其作用域变小,使全局变量的外部链接属性变成了內部链接属性。
3.static修饰函数
- 函数本身具有外部链接属性,可以在外部源文件通过extern链接使用。
- static修饰函数后,使函数不在有外部连接属性,不可以在外部源文件通过extern链接使用。
- static修饰函数使其作用域变小,使函数的外部链接属性变成了內部链接属性。
总结
static修饰局部变量、全局变量、函数时意义分别也是不同的。但是修饰全局变量、函数时较为相似。