全局变量、静态变量、局部变量

本文详细介绍了全局变量、静态变量和局部变量的生存周期与作用域。全局变量在整个程序运行期间存在,作用域为全局;静态变量根据声明位置有不同的作用域,但生存周期从程序开始到结束;局部变量只在函数内部有效,随着函数结束被销毁。此外,还讨论了静态全局变量和静态局部变量在内存分布和初始化特性上的区别。
摘要由CSDN通过智能技术生成

全局变量、静态变量、局部变量的生存周期与作用域

1、生存周期和作用域的定义1

生存周期: 变量从定义到销毁的时间范围。存放在全局数据区的变量的生存周期存在于整个程序运行期间,而存放在栈中的数据则随着函数等的作用域结束导致出栈而销毁,除了静态变量之外的局部变量都存放于栈中。取决于变量存放位置。
作用域: 变量的可见代码域(块作用域,函数作用域,类作用域,程序全局作用域)。取决于变量定义位置。

2、不同类型变量的生存周期和作用域2

1)全局变量:

生命周期:程序运行期一直存在,从程序开始到程序结束;
作用域:全局作用域(只需要在一个源文件中定义,就可以作用于所有的源文件);
引用方法:其他文件如果要使用,必须用extern 等关键字声明要引用的全局变量;
内存分布:全局(静态存储区)。
注意:如果再两个文件中都定义了相同名字的全局变量,则连接错误:变量重定义。

2)静态变量

static变量是指静态的变量,不管是在全局还是局部声明的static变量都存放于程序的全局变量区域,所以它的生命周期是从程序开始到程序结束。但是static变量的作用域并不等同于它的生存周期,它的作用域决定于它被定义的位置。可以认为static变量的作用域<=生存周期。 静态全局变量与静态局部变量的区别仅是作用域不同。

(1)全局声明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值