#include<stdlib.h>
#include<stdio.h>
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的值初始化重新赋值。