问题
填空题
以下程序的输出结果是______。
#include<stdio.h>
int fun(int x, int y)
static int m=0, i=2;
i=i+1;
m+=i+x+y;
return m
main()
int j=4, m=1, k;
k=fun(j, m);printf("gd," , k);
k=fun(j, m); printf("%d\n", k)
答案
参考答案:8,17
解析: 因为在fun中,m、i都是静态局部变量,因此其生存期是直到整个程序的结束,当执行第一个k=fun(j,m)时,返回值m+i+x+y其中x+y=j+m, m=0+3+4+1=8,接着再次执行k=fun(j, m)后,返回值m=4+8+4+1=17。