深入理解C++中变量的存储类别和属性

2020-01-06 13:47:29王冬梅

用static声明静态局部变量

有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量保留上一次函数调用结束时的值。这时就应该指定该局部变量为静态局部变量(static local variable)。

【例】静态局部变量的值。

 

 
  1. #include <iostream>  using namespace std; 
  2. int f(int a) //定义f函数,a为形参  { 
  3. auto int b=0; //定义b为自动变量  static int c=3; //定义c为静态局部变量 
  4. b=b+1;  c=c+1; 
  5. return a+b+c;  } 
  6. int main( )  { 
  7. int a=2,i;  for(i=0;i<3;i++) 
  8. cout<<f(a)<<" ";  cout<<endl; 
  9. return 0;  } 

运行结果为:

 

 
  1. 7 8 9