C语言第14题求解,我认为是选d,但是答案是b
4个回答
展开全部
你的选择是正确的,D。B是错误的,static变量的生命周期是本源程序文件还差不多,因为局部变量也可以声明为static修饰,但它的“作用域”只限于定义它的板块!
追问
可以简单解释一下 生命周期和作用域的区别吗
追答
简单说,生命周期就是存在时间——有些变量只在流程的某个时间段存在,比如函数中的局部变量只有流程进入这个函数时它们才存在,退出这个函数后就不存在了;而static修饰的变量无论是全局的还是局部的,或者流程是否进入了它所在的板块,它们都是一直存在的,直到程序结果后才消失。作用域就是变量的可用空间,比如全局变量的作用空间是定义它之后的整个程序部分,就是说在定义后无论哪个函数中都可以访问,而函数中的自动变量只能在这个函数中定义它之后的部分访问;甚至在一对{}中定义的自动变量只在这对{}中定义它之后的部分作用。要是没说清楚的话,就抱歉了,我表达能力差。
展开全部
这题目出的不好。所谓的标答B是有前提条件的,函数内声明的static变量不会覆盖到整个源文件。
而D选项肯定是错误的。没有显式初始化的静态变量,初值也是随机的。编译器没有义务对其初始化。
而D选项肯定是错误的。没有显式初始化的静态变量,初值也是随机的。编译器没有义务对其初始化。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
D明显不正确,定义的变量如果未赋初值,那么这个变量的初始值是多少完全是看系统分配给你的这段内存中间原来本来就有的值时多少。程序运行之后的任何一件动作都是需要有指令来驱动的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
静态变量没有赋初值!那么它的值是不确定! 变量用static修饰的话,是不会被释放的!因此作用域是本程序!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询