看如下例子
#includeint f() { static int k=0;//在函数内部定义,用static k++; return k; } int main() { printf("%dn",f()); printf("%dn",f()); printf("%dn",f()); }
函数在被调用之前,static就会把k定义好,此后调用函数时不再重新定义
即不再执行int k=0 这句话
static相当于把初始化变量k的过程提到了函数被调用之前,且此后不再重新初始化。
所以以上代码运行结果如下:



