相关知识:
【作用域】 C语言(各变量的生命周期) https://blog.csdn.net/piano_diano/article/details/88981569
【存储类】 C语言 https://blog.csdn.net/piano_diano/article/details/88982871
定义在全局:
当在函数外定义一个static的静态变量时,这个变量可由整个文件内部使用,不能由外部文件使用(除非不用static定义)
#include<stdio.h>
static int a; //static变量自动初始化为0
int main(){
printf("%d\n",a);
return 0;
}
运行结果:
定义在局部:
当在函数外定义一个static的静态变量时,这个变量可有这整个函数使用,最重要的是,即使这个函数被调用多次,但由于static变量只能声明一次,所以每次调用这个函数时,这个static的值使用的是上次改变后的值。
#include<stdio.h>
int main(){
for(int i =0;i<10;i++){
for(int static n = 2;n>0;n--){
printf("Hello\n");
}
}
return 0;
}
运行结果:
对比不用static定义的变量:
#include<stdio.h>
static int a;
int main(){
for(int i =0;i<10;i++){
for(int n = 2;n>0;n--){
printf("Hello\n");
}
}
return 0;
}