设有以下函数: f ( int a){ int b=0;static int c = 3; b++; c++;return(a+b+c); }如果在下面的程序中调用

 我来答
慕容冰绡
推荐于2018-02-28 · TA获得超过1952个赞
知道小有建树答主
回答量:682
采纳率:50%
帮助的人:523万
展开全部
2楼正解
每次循环a的值都是2,b会重新赋值为0,b++之后为1,即每次计算的时候a和b永远是2和1,和为3.
至于c,由于是静态变量,所以只赋值一次,即第一次循环的时候赋值为3,之后每循环一次,执行一次c++,即三次循环c的值分别为4,5,6,所以最终结果应该是
7
8
9
匿名用户
2012-05-28
展开全部
就是啊,没说完吧……
c由于是静态变量,c初始值定义为3,以后调用函数f(),c不会重新定义,仅执行后面的c++语句。
b在每次进入的时候都会重新申明和定义,固每次进入程序都会初始化为0。
执行依次执行f(1),f(2),f(3)的话返回值分别为6,8,10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
双鱼座大叔0309
2012-05-28 · TA获得超过255个赞
知道小有建树答主
回答量:209
采纳率:100%
帮助的人:165万
展开全部
static int c = 3;//c是静态变量,函数返回时不像临时变量需要销毁,下次调用该函数时保存的是上一次的值
追问
但是答案中没有你给的选项。。。。题目错了吗
追答
我只是给你分析下 static 变量的作用而已,zx956592819  解释的是不对的
其实是a和b的值不变,变化的是c的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx956592819
2012-05-28 · 超过20用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:48.3万
展开全部
说完啊,C是全局变量!
更多追问追答
追问
main(){int a=2,i;
for(i=0;i<3;i++) printf("%d\n",f(a));
}
追答
输出
6
7
8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式