问题及代码1:
#include <iostream>
using namespace std;
int f(int n);
int main()
{
cout<<f(5)<<" ";
cout<<f(8)<<endl;
return 0;
}
int f(int n)
{
static int a=2;
int b=0;
a+=n;
b+=a;
return b;
}
运行结果1:
问题及代码2:
#include <iostream>
using namespace std;
int func (int a, int b)
{
static int m=0, i=2;
i+=m+1;
m=i+a+b;
return m;
}
int main()
{
int k=4, m=1, p;
p=func(k, m);
cout<<p<<endl;
p=func(k, m);
cout<<p<<endl;
return 0;
}
运行结果2:
知识点总结:
static声明,只能用于本文件的外部变量(全局变量)称为静态外部变量。
学习心得:
使用static声明,第一次调用自定义函数好像和static声明关系不大,到第二次调用,就会发现和自己预计的结果有所差别,带有static声明的变量发生了变化,变量不再是最初赋得值。