问题
填空题
有以下程序:
#include <iostream>
using namespace std;
int f(int);
int main()
int i;
for(i=0;i<5;i++)
cout<<f(i)<<" ";
return 0;
int f(int i)
static int k=1;
for(;i>0;i--)
k+=i;
return k;
运行后的打印结果是 【9】 。
答案
参考答案:1 2 5 11 21
解析: 函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。