//局部变量int a与静态局部变量static int b
#include <stdio.h>
#include <string.h>
void fun(void)
{
?? ?int a=0;
?? ?static int b=0;
?? ?
?? ?a++;
?? ?b++;
?? ?printf("局部变量a:%d\n",a);
?? ?printf("静态局部变量b:%d\n\n",b);
}
int main()
{?? ?
?? ?fun();
?? ?fun();
?? ?fun();
?? ?
}
局部变量a:1
静态局部变量b:1
局部变量a:1
静态局部变量b:2
局部变量a:1
静态局部变量b:3
*/
/*
(1)局部变量从调用函数开始申请空间直到被调用函数结束释放空间
(2)静态局部变量从调用函数开始申请空间直到工程结束才释放空间,且只有第一次定义是才会被赋值,之后调用直接用上次调用保存的结果。
(3)局部变量位于栈区,静态局部变量位于全局静态区。
(4)静态局部变量拥有全局变量的生命周期,与局部变量的使用范围。
*/