静态变量
精选 转载
静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量, 例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。 对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。 由此看来,一个变量可由static进行再说明,并改变其原有的存储方式。
在局部变量的说明前再加上static说明符就构成静态局部变量。
静态局部变量属于静态存储方式,它具有以下特点:
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。应予以注意。
1.分配给全局变量的内存,一直到程序运行结束时才释放。
请比较一下两个递归函数调用自己(即运行f1(f1())或f2(f2()))时的的运行结果。
上一篇:二维数组的引用和初始化
下一篇:ASCII码表
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
springboot 工具类中注入service接口,静态变量 java @PostConstruct
静态类注入service
初始化 服务器 静态变量 springboot -
JAVA的静态变量、静态方法、静态类
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个
数据 内部类 非静态 静态方法 静态变量 -
什么是静态(static)?什么是静态方法,静态变量,静态块和静态类?静态变量 静态方法 静态块 java 静态类