为了账号安全,请及时绑定邮箱和手机立即绑定

以下代码中,最终的输出结果是什么?有大佬知道吗?

以下代码中,最终的输出结果是什么?有大佬知道吗?

C PHP
MMTTMM 2022-03-26 12:08:50
#include<stdio.h> func(int a,int b){static int m=0,i=2;i+=m+1;m=i+a+b;return(m);}main()(int k=4,m=1,p;p=func(k,m); printf("%d,",p);p=func(k,m); printf("%d\n",p)} 的输出结果是什么
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

#include<stdio.h> func(int a,int b){    static int m=0,i=2;    i+=m+1;    m=i+a+b;    return(m);}main(){    int k=4,m=1,p;    p=func(k,m);     printf("%d,",p);    p=func(k,m);     printf("%d\n",p)}

打印的是两次调用func的返回值。 

主函数中k,m值不变, 于是两次func的参数都是4,1

对于func

a=4 b=1

第一次

m=0,i=2;
   i+=m+1; >>>> i=3
   m=i+a+b;>>>>m=8

返回8  输出也就是8

第二次

m=8 i=3;>>> m和i是静态变量,还是上次退出时的值

i+=m+1; >>>> i=12
   m=i+a+b;>>>>m=17

返回17 

于是输出是

8

17



查看完整回答
反对 回复 2022-03-28
  • 1 回答
  • 0 关注
  • 213 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信