c语言,全局静态变量是不是就是全局变量静态储存?

如题所述

不太严格的说,可以这么认为。
因为全局变量和静态变量在内存里是储存在一个地方的。叫
data
segment
(数据段),静态区。意思是这个地方的数据的生命周期是不变的,只要程序本身在运行,他们就会存在。所以说他们都存在同一片区域内。
你能想到
静态变量

全局变量
在使用的时候有什么区别吗?唯一的区别就是对于多个文件的访问权限,static
的变量只对本文件有效,而全局变量(除去const)对当前所有文件有效。main.cpp
可以访问
foo.cpp
的全局变量,而不能访问
foo.cpp
的静态变量。
既然他们存在一个地方,如何区分呢。通过变量的
linkage
(即能否被链接器识别)属性,internal
linkage
的变量只能被本文件访问,而
external
linkage
的变量可以被其他文件访问。就这个层面而言,你的想法不能说有错。
温馨提示:答案为网友推荐,仅供参考
相似回答