C 语言中全局变量、局部变量、函数参数个是在什么时候分配内存空间

 我来答
百度网友5803c9a
2010-02-22 · TA获得超过2162个赞
知道小有建树答主
回答量:891
采纳率:0%
帮助的人:1239万
展开全部
全局变量是在main函数之前就分配
局部变量在定义时分配,超出作用域后释放
静态局部变量只分配一次,程序退出后才释放
函数参数与局部变量基本上相同在进入函数时分配,函数结束时释放
业庆母恬畅
2019-10-21 · TA获得超过3858个赞
知道大有可为答主
回答量:3046
采纳率:35%
帮助的人:267万
展开全部
全局变量是使用相同的内存块在整个类中存储一个值.
全局变量的存在主要有以下一些原因:
1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不成为什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。
2,使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样现在也快不了多少。
3,对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。
总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使期名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。
局部变量:在程序中,只在特定的过程或函数中可以访问的变量,是相对与全局变量而言的。
全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。
局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
防诈分队
2010-02-22 · 超过18用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:29.4万
展开全部
全局变量是在一开始分配内存
局部变量在使用时分配,使用完毕释放 一般是使用的函数被调用的时候
静态局部变量只分配一次,且不会释放
函数参数在使用时分配,使用完毕释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zealotjojo
2010-02-22 · TA获得超过427个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:237万
展开全部
全局变量是在一开始分配内存
局部变量在使用时分配,使用完毕释放
静态局部变量只分配一次,且不会释放
函数参数在使用时分配,使用完毕释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
科郡
2013-03-26
知道答主
回答量:6
采纳率:0%
帮助的人:8841
展开全部
主要是看变量属于什么存储类型,全局变量、静态变量存储于静态内存,局部变量和函数的形参存储于堆栈中,不存储于堆栈中的变量在可执行程序载入内存时便分配存储空间,即在程序执行之前,堆栈中的变量会在定义变量时分配内存空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式