问题及代码:
#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;
}
运行结果:
预计运行结果是:7 10
实际运行结果是:7 15
知识点总结:
static静态变量在函数调用结束后不消失而保留原值
学习心得:
在第一次函数调用时,a=7,b=7,n=5
在第二次调用时,static静态变量a保留了上次调用后的值,a=7
所以最后结果得出b=15而不是10