一道关于C语言静态变量的题,求解。
刚问老师了,他说是A。理由:静态全局变量是半全局变量,不是全局变量。还训了我一顿:上课没好好听!?对于这种变态的题,我只想说:去你丫的!...
刚问老师了,他说是A。
理由:静态全局变量是半全局变量,不是全局变量。还训了我一顿:上课没好好听!?
对于这种变态的题,我只想说:去你丫的! 展开
理由:静态全局变量是半全局变量,不是全局变量。还训了我一顿:上课没好好听!?
对于这种变态的题,我只想说:去你丫的! 展开
5个回答
展开全部
static 是C中很常用的修饰符,它被用来控制变量的存储方式和可见性static 声明的变量在C语言中有两方面的特征:1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
=> A B C正确
静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的。
=> A B C正确
静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的。
追问
那C呢?
追答
设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;
展开全部
ABC
静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的。
静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的。
更多追问追答
追问
那C呢?
追答
全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。
所以需要注意生存周期
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A和B
C,全局变量不需要考虑生存周期,因为生存周期和系统运行时间相同
D,静态全局变量存放在静态内存区,不存放在动态的栈空间,不会导致栈溢出,使用过大的局部变量倒是有可能导致栈溢出
C,全局变量不需要考虑生存周期,因为生存周期和系统运行时间相同
D,静态全局变量存放在静态内存区,不存放在动态的栈空间,不会导致栈溢出,使用过大的局部变量倒是有可能导致栈溢出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
琢磨了一下,只有D是错误的。C是在玩文字游戏:它们都是全寿命的,当然要考虑啊!哈哈……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ABC
前三个都对 是多选题吗
前三个都对 是多选题吗
追问
那C呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询