c语言中 函数调用结束后,函数内定义的静态变量所

 我来答
md...f@163.com
2017-10-23 · TA获得超过172个赞
知道小有建树答主
回答量:160
采纳率:40%
帮助的人:65.5万
展开全部
static不是允许修改,你估计和const搞混了,static表示静态存储,直到整个程序结束变量值才会从存储区释放,静态变量又分为全局静态变量和局部静态变量,
全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;

静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;
静态局部变量和作用域和局部变量一样,不过生存周期不一样,局部变量在定义局部变量的函数调用完之后就从内存中释放其值,而静态局部变量不释放,等整个程序全部执行结束后才会从内存中释放。
ZS坐看云起时
2017-10-23 · TA获得超过646个赞
知道小有建树答主
回答量:560
采纳率:92%
帮助的人:98.2万
展开全部
函数内定义的静态变量,形式上是局部变量,但与一般局部变量不同:
1、一般的局部变量在函数结束后就释放了,下次调用时重新申请空间;
2、“静态局部”变量,在函数调用结束后,空间不释放,保留结束前的值,直到下次调用时作为初值使用,要到整个程序退出时才释放
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式