博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
局部变量与全局变量
阅读量:4365 次
发布时间:2019-06-07

本文共 665 字,大约阅读时间需要 2 分钟。

根据C语言的说法,局部变量:定义在方法内部的变量叫局部变量;全局变量:定义在方法外部的变量叫全局变量。局部变量和全局变量的主要区别在于二者的生存周期不同。

全局变量的生存周期:静态分配内存,程序运行期间常驻内存,直到程序运行结束。

局部变量的生存周期:动态分配内存,位于线程堆栈中。

另外全局变量和局部变量的作用域不同,举例来说,类中的变量作用域在当前类中,类方法中的变量作用域在当前方法中。

全局变量的使用场景:多个地方需要使用,大家共享。

局部变量的使用场景:只在当前这个地方使用。


 在项目开发中,尽量少使用全局变量(准确地说,应该是尽量缩小变量的作用域)。为什么尽量少使用全局变量?

首先,不符合高内聚、低耦合的原则,维护困难。举例来说:全局变量相当于公家的东西,好处是大家都可以很方便的使用,坏处是大家都可以随便使用,会引起冲突,你用的时候也不知道别人做了什么手脚(不符合函数式编程原则),因此很难管理。

其次,使用全局变量不符合延迟加载的原则,延迟加载说的是,等到真正用到的时候,再加载相应的东西到内存中。而使用全局变量相当于一开始,就把所有需要的东西加载进来。举例来说:我们出去旅游,没有必要带上所有的东西吧,比如米饭,我们可以在旅游地买米饭吃。

但是,尽量少用,并不意味着不用,有些时候必须要用。还是上面出去旅游的例子,旅游过程中,你的钱包要始终带着,因为到处需要钱,这就是全局。

转载于:https://www.cnblogs.com/nzbbody/archive/2011/12/31/2308889.html

你可能感兴趣的文章
Properties类加载属性文件
查看>>
堆和栈&值类型和引用类型&拆箱和装箱
查看>>
HTML5外包团队:HTML5 Canvas使用教程
查看>>
内核调试日志打印宏
查看>>
C语言中格式化输出,四舍五入类型问题
查看>>
ListView
查看>>
WPF浏览器应用程序与JS的互调用(不用WebBrowser)
查看>>
bzoj2820: YY的GCD
查看>>
链表后续完善(一)
查看>>
Netsharp快速入门(之13) 销售管理(单据流转 销售订单生成发货单)
查看>>
郑州大学2018新生训练赛第十场题解
查看>>
相关子查询和嵌套子查询
查看>>
Oracle分析函数入门
查看>>
线段拟合(带拉格朗日乘子,HGL)
查看>>
oracle数据库服务介绍
查看>>
SQL存储过程分页实现
查看>>
Oracle 11gR2 deferred segment creation 与 exp/imp 说明
查看>>
java基础知识系列--- 反射,注解,泛型,内省
查看>>
Android adb的使用
查看>>
Ubuntu18.04 + cuda9.0+cudnn7.0
查看>>