C语言中的静态变量

Python015

C语言中的静态变量,第1张

其实是这样的。静态变量在内存中存储的位置,与全局变量是同一个区域。

所以,在编译期间,它的存储和大小就已经确定了,也就是已经分配了空间了。

而在c语言中,“分配内存”往往看做是变量被定义的一个标志。

所以,你在运行程序的时候,由于静态变量已经分配过内存了,不会再次进行分配了,它的定义语句就不会再次被执行了。

全局变量声明之前加上static,就是静态全局变量。全局变量和静态全局变量都是静态存储的;在存储上无区别。区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用!

还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以再其他源文件初始化!!