#include <stdio.h>
//如果想在函数当中局部变量的值,在函数调用结束后并不消失,让他继续保留原值则可以用静态局部变量
int* p;
void f(void)
{
int i=10;
static int j;//若定义静态局部变量没给它赋值,则默认它的值为0
printf("%d,%d\n",i++,j++);//因为j是静态的,所以在调用一次之后他的值保留原值,所以下一次调用是在这个基础上加1
//而i是非静态的,i++是先用后加,所以先输出i后++,但函数调用一次后把这个值释放掉了,所以第二次调用i还是10
p=&j;
}
int main()
{
// printf("%d\n",j);//会报错,因为static定义的局部变量他的作用域就是从定义处开始到离它最近的}结束
f();//10,0
f();//10,1
f();//10,2
printf("%d\n",*p);//若想调用j则可以利用指针间接调用
return 0;
}
static局部变量-静态局部变量
最新推荐文章于 2024-04-09 15:35:09 发布