随笔 - 576  文章 - 0  评论 - 62  阅读 - 219万

局部变量与全局变量

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

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

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

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

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

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


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

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

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

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

posted on   Andy Niu  阅读(1558)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2011年12月 >
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

点击右上角即可分享
微信分享提示