关于Static静态变量
#include<stdio.h>long fac(int n)
{
static int f=1;
f=f*n;
return f;
}有没有哪位大神能告诉我,为什么这个能够完成(阶层)的处理,小弟想不通 本帖最后由 machimilk 于 2014-1-18 22:01 编辑
个人理解为加了static就相当于全局变量了
变量在每次函数调用之后会把销毁,下次调用时就是重定义的了。
静态的不会销毁,下次调用时还是这个。
你可以单步调试,注意各个变量的值
比如你这么写
int func1();
int func2();
void main()
{
int a,b;
a= func1();//这时候a=2
a= func1();//a=3
a= func1();//a=4
b=func2();//b=2
b=func2();//b=2
b=func2();//b=2
}
int func1()
{
static int i=1;//第二次到这里i是以前赋值过的i
i++;
return i;
}
int func2()
{
int j=1;
j++;
return j;
}
大概明白了吧 我明白了,谢谢
页:
[1]