大神帮帮忙?c语言关于静态局部变量的一些问题

intq(intx){inty=1;staticintz=1;z+=z+y++;returnx+z;}voidmain(void){cout<<q(1)<<‘\t’;co... intq(intx)
{ int y=1;
static int z=1;
z+=z+y++;
return x+z;
}
void main(void)
{ cout<<q(1)<<‘\t’;
cout<<q(2)<<‘\t’;
cout<<q(3)<<‘\t’;
}
求解释!!!!!
展开
 我来答
心中风情4
2013-10-25 · TA获得超过2247个赞
知道大有可为答主
回答量:1779
采纳率:66%
帮助的人:1039万
展开全部
函数中静态变量的初始化语句只会执行一次,即:static int z=1;
这句代码只会执行一次,所以
q(1):
z=1;
z+=z+y++; =>z=1+1+1=3
return x+Z ==> 得到1+3=4

q(2):(此时z=3)
z=3+3+1 =7
return x+Z ==> 得到2+7=9

q(3):(此时z=7)
z=7+7+1 =15
return x+Z ==> 得到3+15=18

所以输出 4 9 18
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式