以下程序输出结果是———#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; } 展开
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; } 展开
1个回答
展开全部
8 16
输出的结果为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来进行运算。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询