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

2023-11-10

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

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

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

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

1)全局变量:

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

2)静态变量

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

ÿ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C++】全局变量、静态变量、局部变量的生存周期与作用域 的相关文章

随机推荐