以下程序输出结果是———#include <iostream>using namespace std;

#include<iostream>usingnamespacestd;intfunc(inta,intb){staticintm=0;inti=2;i+=m+1;m=i... #include <iostream>
using namespace std;
int func(int a,int b)
{ static int m=0;int i=2;
i+=m+1;
m=i+a+b;
return (m);
}
int main( )
{ int k=4,m=1,p;
p=func(k,m);
cout<<p;
p=func(k,m);
cout<<p<<endl;
return 0; }
展开
 我来答
woshizjp
2015-08-25 · TA获得超过351个赞
知道小有建树答主
回答量:322
采纳率:100%
帮助的人:322万
展开全部
8 16
输出的结果为8 然后是16.
追问
我知道 关键是想知道过程是怎样的
追答
第一次func调用的时候,m变为8.
第二次再调用func时,初始值m就已经为8了,i += m+1;i就变为2+8+1 = 11了,
11+4+1就得到16了。
static 为局部全局变量,只初始化一次。后续的值会一直保留着。
所以在第一次调用func之后,m就保留为8 了,然后再次调用func时,就得使用8来进行运算。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式