因为C是静态变量.
当i为0时,调用函数后,a=2,b=1,c=4,返回7
当i为1时,调用函数后,a=2,b=1,c=5,返回8
当i为2时,调用函数后,a=2,b=1,c=6,返回9
所以最后输出
7
8
9
第一次循环:f(a)=f(2)=2+(++0)+(++3)=2+1+4=7
第二次循环:f(a)=f(2)=2+(++0)+(++4)【此时c值保留上回合的值4】=8
第三次循环:c值保留上回合的值5,结果是9
每次输出的结果都是7,一共输出四次。
每次执行函数f(int a)时,在函数f(int a)内部,由主函数传递的参数a=2,每次都给b、c赋值,所以每次b、c都是一样的,b=0,c=3。执行完语句
b++;c++;
后,a=2,b=1,c=4。
a+b+c=7.
static int c=3;
static 只初始化一次,
后面就是调用一次执行一次c++;
第一次调用后 C=4;
第二次调用后 C=5;
第三次调用后 C=6;