c语言的一个问题 请尽量详细点解释

[复制链接]
查看11 | 回复2 | 2009-6-7 18:25:25 | 显示全部楼层 |阅读模式
1.一下程序
fun(int x,int y)
{ static int m=0,i=2;
i+=m+1; m=i+x+y;return m;}
main()
{ int j=1,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
参考答案:5,11
为什么答案是这

回复

使用道具 举报

千问 | 2009-6-7 18:25:25 | 显示全部楼层
第一个5,理解不难吧。因为m,i是static,fun()第一次执行后,m=5,i=3.第二次执行fun()时,i=9,m=9+1+1=11.关键是 static的概念与局部变量的范围理解要正确。...
回复

使用道具 举报

千问 | 2009-6-7 18:25:25 | 显示全部楼层
这种问题也提?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行