Static静态变量的一点体会
#include<iostream>
using namespace std;
int fac(int n);
int main()
{
int m=0,a,b,c;
cout<<"input a,b,c:";
cin>>a>>b>>c;
m=fac(a)+fac(b)+fac(c);
cout<<"m="<<m<<endl;
return 0;
}
int fac(int n)
{
static int f=1;
//int f=1;
// 试分别运行上面两行代码就可以知道Static变量的作用了!
f=f*n;
return f;
}
在子函数中:
1。静态变量只会被初始化一次,之后每次调用子函数也只是对该变量进行操作。
2。普通(局部)变量则在每次调用子函数时都会被重新初始化。
它们两者的区别换句话说,可以认为是:
在子函数中,静态变量只占用一个故定的内存地址;而局部变量则每次都占用一个新的内存地址,这个地址可能是随机的。