被调用函数结束时,形参会保留还是初始化。
程序代码:
#include <stdio.h>
int a=2;
int f(int m)
{ static int n;
n=0;n++;a++;
return n+m+a;
}
main()
{
int k;
for (k=0;k<4;k++)
printf("%d,",f(k));
}
下面是我的理解以及疑问:
a是全局变量,当f函数第一次被调用结束后,a的值会变为3吗&每调用一次就自增一次吗&在f函数之外a会变吗?
n是静态局部变量只定义一次,“static int n=1;”不管这个f函数被重复调用几次,n只进行一次赋值。但是这边是“static int n;n=0;”我的理解是f函数被调重复用几次,n每次都要重新被赋值为0。对吗?









