一道关于C语言静态变量的题,求解。

刚问老师了,他说是A。理由:静态全局变量是半全局变量,不是全局变量。还训了我一顿:上课没好好听!?对于这种变态的题,我只想说:去你丫的!... 刚问老师了,他说是A。
理由:静态全局变量是半全局变量,不是全局变量。还训了我一顿:上课没好好听!?
对于这种变态的题,我只想说:去你丫的!
展开
 我来答
福泽佑之IN
推荐于2018-04-21 · TA获得超过2473个赞
知道小有建树答主
回答量:727
采纳率:0%
帮助的人:688万
展开全部
static 是C中很常用的修饰符,它被用来控制变量的存储方式和可见性static 声明的变量在C语言中有两方面的特征:1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
=> A B C正确
静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的。
追问
那C呢?
追答
设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;
无私又鲜美的小夜鹰q
2014-01-13 · 超过20用户采纳过TA的回答
知道答主
回答量:170
采纳率:0%
帮助的人:47.8万
展开全部
ABC
静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的。
更多追问追答
追问
那C呢?
追答
全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。
所以需要注意生存周期
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友83cdc1c
2014-01-13 · TA获得超过5788个赞
知道大有可为答主
回答量:1907
采纳率:100%
帮助的人:819万
展开全部
A和B
C,全局变量不需要考虑生存周期,因为生存周期和系统运行时间相同
D,静态全局变量存放在静态内存区,不存放在动态的栈空间,不会导致栈溢出,使用过大的局部变量倒是有可能导致栈溢出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2014-01-13 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6379万
展开全部
琢磨了一下,只有D是错误的。C是在玩文字游戏:它们都是全寿命的,当然要考虑啊!哈哈……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
babywolfh1
2014-01-13 · TA获得超过199个赞
知道答主
回答量:101
采纳率:0%
帮助的人:82.4万
展开全部
ABC
前三个都对 是多选题吗
追问
那C呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式