C语言习题,进来帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/05/07 16:14:31
下列程序段的输出是_____。

# include <stdio.h>

int f(int x)

{ static y=1;

y++;

x += y;

return x;

}

void main()

{ int k;

k=f(3);

printf("%d %dn", k, f(k));

}
后面一个输出,谁能帮解释一下,谢谢

5 8
y是静态变量,所以每调用一次其值改变一次
f(3)=5;
此时y=2,k=5;
后来在printf中再调用一次,y=3;
那么f(k)=3+k=8
我没调试过程序,不知道答案对不对呵呵