被调用函数结束时,形参会保留还是初始化。
程序代码:
#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。对吗?