C语言第14题求解,我认为是选d,但是答案是b

 我来答
White_MouseYBZ
2019-09-20 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6483万
展开全部
你的选择是正确的,D。B是错误的,static变量的生命周期是本源程序文件还差不多,因为局部变量也可以声明为static修饰,但它的“作用域”只限于定义它的板块!
追问
可以简单解释一下 生命周期和作用域的区别吗
追答
简单说,生命周期就是存在时间——有些变量只在流程的某个时间段存在,比如函数中的局部变量只有流程进入这个函数时它们才存在,退出这个函数后就不存在了;而static修饰的变量无论是全局的还是局部的,或者流程是否进入了它所在的板块,它们都是一直存在的,直到程序结果后才消失。作用域就是变量的可用空间,比如全局变量的作用空间是定义它之后的整个程序部分,就是说在定义后无论哪个函数中都可以访问,而函数中的自动变量只能在这个函数中定义它之后的部分访问;甚至在一对{}中定义的自动变量只在这对{}中定义它之后的部分作用。要是没说清楚的话,就抱歉了,我表达能力差。
一剑出血
高粉答主

2019-09-20 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
这题目出的不好。所谓的标答B是有前提条件的,函数内声明的static变量不会覆盖到整个源文件。
而D选项肯定是错误的。没有显式初始化的静态变量,初值也是随机的。编译器没有义务对其初始化。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouyun_mtk
2019-09-20
知道答主
回答量:10
采纳率:0%
帮助的人:6151
展开全部
D明显不正确,定义的变量如果未赋初值,那么这个变量的初始值是多少完全是看系统分配给你的这段内存中间原来本来就有的值时多少。程序运行之后的任何一件动作都是需要有指令来驱动的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大维
2019-09-20 · 郑州西亚斯学院副教授
大维
郑州西亚斯学院副教授
采纳数:111 获赞数:365
发表论文14篇。编写教材5部。擅长微控制器应用技术和网络技术

向TA提问 私信TA
展开全部
静态变量没有赋初值!那么它的值是不确定! 变量用static修饰的话,是不会被释放的!因此作用域是本程序!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式