求大神这倒大题的具体运算过程和解题分析,谢谢了,在线等。

 我来答
sinerpo
2017-02-26 · TA获得超过1.6万个赞
知道大有可为答主
回答量:5065
采纳率:100%
帮助的人:3351万
展开全部
第一次func(a,b)函数时,传递过来的两个值是4,1 即在func(a,b)函数中a=4,b=1 static int m=0,i=2,定义了两个静态变量,即一直占用内存,函数调用结束不释放,结果依然是上一次改变后的结果.
执行 i+=m+1 →即 i=2+0+1=3; 
执行 m=i+a+b; → m=3+4+1=8;
执行 return(m) →返回 m=8;
printf("%d,",p); 输出 8
第二次执行func函数 依然传递 4,1
在func函数中,因为m 和i是静态变量,所以这时m=1,i=3
执行 i+=m+1; → i=3+8+1=12;
执行 m=i+a+b; → m=12+4+1=17;
执行 return(m) →返回 m=17;
printf("%d,",p); 输出 17
最后结果为 8 ,17
更多追问追答
追问
它不是fun(k,m)吗,怎么成fun(a,b)了
追答
int func(int a, intb)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式