#include<stdio.h>
#include<stdlib.h>
void fun()
{
int a = 12;//局部变量
static int b = 22;//静态局部变量
a++;
b++;
printf("a:%d,b:%d\n",a,b);
}
int main(void)
{
fun();
fun();
fun();
system("pause");
return 0;
}
可以看到三次调用函数的结果的区别;
这说明:
静态局部变量作用域在整个程序;static int a定义的静态局部变量,在程序加载期,就执行了,程序运行起来时,这个就无效了;每次都在原来的基础上修改;
局部变量的作用域只在对应的块中;局部变量只能存在与对应的块中,块执行结束就会无效;每次都在定义的基础上修改;