Cにおけるstatic静的変数の使用

598 ワード

#include
#include
int fun(int a,int b)
{  static int m=1, i=1;
   i+=1;   m = i+m;
   return  m;
}
int main()
{ 
	int  k=0, m=0, p;
   p = fun( k,m );   printf("%d,", p);
   p = fun( k,m );   printf("%d " ,p );
   p = fun( k,m );   printf("%d,", p);
   p = fun( k,m );   printf("%d " ,p );  

 system("pause");
 return 0;
}

static int mを定義すると、iはmとiの値が保存され、呼び出されるたびに変数m,iは前回保存した値が保存されます.
注意すべきはstatic int m=1,i=1である.再度staticは変数mとiに最初の初期値を付与するだけで、その後プログラムが実行され、mとiの値を初期化して再付与することはありません.