当前位置:网站首页>变量的作用域和生命周期
变量的作用域和生命周期
2022-04-22 07:50:00 【圣喵】
目录
作用域
作用域是程序设计概念,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的范围就是其作用域。通俗来说就是它在哪里起作用哪里就是它的作用域。
局部变量的作用域
- 局部变量:又称内部变量,是指在一个函数内部定义的变量或复合语句内部定义的变量。
- 作用域
- 那么局部变量的作用域如何确定?举个列子,下面为一段代码,很明显他是能够编译成功的

但若我们改成这样它还能正确编译吗?


答案如你所见编译器报错:“a”是未声明的标识符,可这是为什么呢?我们知道变量a是在我框出来的范围内创建的,而出了这个范围就不能被使用了,可见变量是有使用范围的,而限定这个变量的范围就是它的作用域。那这个范围怎么确定呢?

可见,最外面创建的变量a的作用域就是我所框出来的部分。相比于内部创建的变量a,它两相同的是:他们可使用的范围都是其外部首个大括号内部的范围,出了该范围就不被编译器认可了。所以,我们认为:局部变量的作用域就是变量所在的局部范围。
全局变量的作用域
- 全局变量:又称外部变量,是指在函数外部创建的变量,其可以被本程序所有对象或者函数引用的变量。
- 举几个例子,可见全局变量的可以在该程序的任意地方进行使用

甚至不同的源文件都可以用同一个全局变量,只不过需要先声明一下,该全局变量是外部引进的,用函数extern就行了。

所以我们认为,全局变量的作用域可以说是整个工程。
生命周期
生命周期在编程中是指一个变量、函数、还是其他什么的创建到销毁之间的这个时间段。
局部变量的生命周期
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
全局变量的生命周期
- 全局变量的生命周期是:整个程序的生命周期。
值得注意的是:我们应该尽量少的使用全局变量,因为其在程序执行中始终占用存储单元,这样太过浪费内存空间,降低了函数的独立性、通用性、可靠性及可移植性;而且特别易出错。

如果这份博客对铁们有所帮助,或能够使你产生共鸣的,请不要吝啬你的点赞和关注哟,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧 >_<…
版权声明
本文为[圣喵]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_66769266/article/details/124113089
边栏推荐
- C语言的攻克之路
- Rhel7 logical volume management - Notes
- How to decrypt the mobile phone number of wechat applet
- How does CSDN reprint other people's blogs
- RHEL user and group management - Notes
- CASE WHEN 及 SELECT CASE WHEN的用法 非常好用
- Hyperledger Fabric1. 4 environment construction and example test
- HyperLedger Explorer 0.3.9环境搭建
- Install_ FAILED_ MISSING_ SHARED_ LIBRARY
- 电脑重置后恢复mysql服务
猜你喜欢

工业缺陷检测项目实战(四)——基于HRNet的陶瓷缺陷检测

129. Find the sum of numbers from root node to leaf node (medium)

Hyperledger Fabric1.4环境搭建及示例测试

Shell notes

Establishment of golang environment

1315. Sum of nodes with even grandfather node value (medium)

100. Same tree (easy)

PCIe learning - basic concepts of PCIe bus (6)

Leaflet and cesium load Baidu map, and load custom style Baidu map

Rhel7 configuring local Yum source
随机推荐
236. The nearest common ancestor of a binary tree (medium)
腾讯视频自动签到详细版(多种方式得V值)
Realization of floor decomposition animation in cesium
Redis is easy to use
Use of stream
Elastic job installation deployment access
winkawaks1.45如何联机?winkawaks1.45怎样联机对战(其他版本类似)
win系统pinpoint编译安装遇到的坑和大家分享
The pit encountered in the compilation and installation of pinpoint of win system will be shared with you
elastic-job安装部署接入
How does CSDN reprint articles
C语言之scanf/sprintf、fscanf/fprintf、sscanf/sprintf、snprintf
机器学习之分类回归树
Tissu hyperledger 1. 4 construction de l'environnement et essais d'échantillons
nacos源代码编译中遇到的问题解决后整理如下
电脑重置后恢复mysql服务
Client server communication project 2
Fabric test example, encountered order exited (x) x seconds
Tencent video automatic check-in detailed version (V value obtained by multiple methods)
数组传参的本质
