C语言之详解静态变量static
在C语言中,关键字static
可以用于修饰全局变量,局部变量和函数,其作用分别如下:
1. 修饰全局变量
- 在全局变量前加上
static
关键字,表示该变量具有静态存储期和静态链接属性。 - 在同一文件中的其他函数中不能访问该变量。
- 只能被定义变量的函数访问。
- 被初始化为0,除非在定义时显式初始化。
static int a; // 声明一个静态全局变量
int main() {
a = 1; // 正确,只能被定义变量的函数访问
func();
return 0;
}
void func() {
a = 2; // 错误,在同一文件中的其他函数中不能访问该变量
}
2. 修饰局部变量
- 在局部变量前加上
static
关键字,表示该变量具有静态存储期。 - 该变量在程序编译时已经被初始化,并且只会在程序运行时被初始化一次,这也就是说局部静态变量的初始化只会在程序的第一次调用时进行。
- 只能在定义该变量的函数中访问,但他的生命周期与程序相同。
void func() {
static int a = 0; // 声明一个静态局部变量
a++;
printf("%d ", a);
}
int main() {
func(); // 1
func(); // 2
func(); // 3
return 0;
}
3. 修饰函数
- 在函数的声明和定义前加上
static
关键字,表示该函数只在定义它的文件可见,也称为内部函数。 - 禁止在其他文件中调用该函数。
static void func() {
printf("I am a static function");
}
int main() {
func(); // 正确,只能在定义函数的文件中调用
return 0;
}
以上就是C语言
中static
关键字的使用方法,希望可以对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言之详解静态变量static - Python技术站