小菜鸟启程之const

千万别问我现在过得好不好,我怕我一张嘴,嘴里冒出的全是孤独的味道!

static

static分两种情况,修饰局部变量和全局变量。

static修饰局部变量

局部变量是存储在栈区的,它的生命周期是整个代码的块,作用域也是整个代码块,一旦出了代码块,存储局部变量的这个栈内存就会被回收,局部变量也就被销毁了。

当我们用static修饰局部变量时,变量被称为静态局部变量,和局部变量、全局变量,静态全局变量一样,是存储在静态存储区,所以这块内存直到程序结束才会销毁。

一个简单的例子:

for循环调用一个函数,该函数内部有一个局部变量number,,初始值为0,每调用一次,number自增1;

如果没有static修饰,打印结果,每次都是1了;如果有static修饰,每调用一次,number在原有基础上都自增1

static修饰全局变量

当全局变量没有使用static修饰符时,其存储在静态存储区,知道程序结束才销毁。也就是其作用域是整个源程序。我们可以使用extern关键字来引用这个全局变量(可以不用引入头文件)

当全局变量用static修饰时,其生命周期没有变,依旧是在程序结束时才销毁。但是其作用域变了,以前是整个源程序,现在只限于申明它的这个文件才可见,即使用extern引用也不行,不然会报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容