C语言 这题不会写,我觉得是777答案是789?

 我来答
匿名用户
2020-03-20
展开全部
1、关键在static修饰的int c;
普通局部变量存储于进程栈空间,使用完毕会立即释放。
而静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。
且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。
因此,c的值是一直在++的。故答案是789
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
swjpc
2020-03-20 · TA获得超过143个赞
知道小有建树答主
回答量:110
采纳率:72%
帮助的人:24.9万
展开全部
一、变量声明后会被编译器识别并编译,但static修饰的变量只编译一次;
二、static变量生存期为程序运行开始到结束;
第一次看int f(int a),语句static int c = 3时第一次被识别到,所以int c = 3需要编译,于是c被赋值为3,然后c自增变成了4;
第二次看int f(int a),语句static int c = 3不是第一次被识别,所以int c = 3不会再被编译,于是c没有被重新赋值为3,保留了上一次的操作结果:4,然后c做自增操作变成了5;
第三次,同理,c变成了6;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周大个子79
2020-03-20 · TA获得超过147个赞
知道小有建树答主
回答量:188
采纳率:100%
帮助的人:28.7万
展开全部
7 8 9,static int c这个东西你可以看作全局变量,第二次调用不会重置为3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式