静态全局变量与静态局部变量在C语言中的赋值
程序员文章站
2022-07-07 21:30:20
...
静态全局变量
作用域仅限于变量被定义的文件中
,其他文件即使用 extern 声明也没法使用他。准确地说作用域是从定义之处开始,到文件结尾处结束,在定义之处前面的那些代码行也不能使用它。想要使用就得在前面再加 extern ***。要想直接使用,很简单,直接在文件顶端定义不就得了。
静态局部变量
在函数体里面定义的,就只能在这个函数里用了,同一个文档中的其他函数也用不了。由于被 static 修饰的变量总是存在内存的静态区,所以即使这个函数运行结束,这个静态变量的值还是不会被销毁,函数下次使用时仍然能用到这个值。
例子
#include <stdio.h>
static int j;
void fun1(void){
static int i=0;
i++;
printf("i=%d\t",i);
}
void fun2(void){
j=0;
j++;
printf("j=%d\n",j);
}
int main(){
for( int k=0; k<10; k++){
fun1();
fun2();
}
return 0;
}
执行结果
[[email protected] test]# ./static
i=1 j=1
i=2 j=1
i=3 j=1
i=4 j=1
i=5 j=1
i=6 j=1
i=7 j=1
i=8 j=1
i=9 j=1
i=10j=1
下一篇: C语言中的全局变量和局部变量区分