`
yangyou230
  • 浏览: 1639309 次
文章分类
社区版块
存档分类

C语言中全局变量和静态变量有何异同

 
阅读更多

全局变量,作用域是整个程序,若某一个局部重新定义了这个量,则全局变量作用域是除了这个局部外的整个程序,它的生命期与程序生命期一样长。

静态变量保存在静态存储区,它的生命期与程序生命期相同。例如,某一个子程序(子函数)定义了一个静态量,当程序退出该子程序时,这个量仍被保留,其它非静态量的存储单元被释放。也就是说,非静态量的生命期与子程序的生命期相同,进如子程序,分配单元,退出则取消。下次调用子程序时非静态量消失,静态量却保留上次调用的结果。

相同点——都保留在静态存储区,生命期与程序生命期相同。

不同点——全局变量具有全局作用域,静态变量具有稳健作用域。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics