设有以下函数; (答案是 A) ,为什么?)

2024-11-26 12:41:08
推荐回答(4个)
回答1:

因为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

回答2:

第一次循环:f(a)=f(2)=2+(++0)+(++3)=2+1+4=7
第二次循环:f(a)=f(2)=2+(++0)+(++4)【此时c值保留上回合的值4】=8
第三次循环:c值保留上回合的值5,结果是9

回答3:

每次输出的结果都是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.

回答4:

static int c=3;

static 只初始化一次,
后面就是调用一次执行一次c++;
第一次调用后 C=4;
第二次调用后 C=5;
第三次调用后 C=6;