有以下程序: #include <iostream> using namespace std; int f(int); int main() { int i; for(i=0;i<5;i++)

admin2010-06-06  25

问题 有以下程序:
   #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;

选项

答案1 2 5 11 21

解析 函数f()中定义了一个内部静态变量k,其作用域仍在定义它的函数内。但该类型变量采用静态存储分配,当函数执行完,返回调用点时,该变量并不撤销,其值将继续保留,若下次再进入该函数时,其值仍然存在。内部静态变量有隐含初值0,并且只在编译时初始化一次。
转载请注明原文地址:https://kaotiyun.com/show/pujp777K
0

最新回复(0)