问题
填空题
有以下程序: #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,并且只在编译时初始化一次。