C++之变量的作用域,生存期,可见性

作用域是表示某个标识符在什么范围内有效;
可见性是指标识符是否可见,可引用;
生存期,是指程序中的简单变量和类的对象,它们同自然界中的万物一样。也有自己的产生和消亡的生存期,变量和对象的生存期包含静态生存期和动态生存期。具有静态生存期的变量和对象,它们的生存期和程序运行相同;除了具有静态生存期的变量和对象,其余的变量和对象则具有动态生存期。具有动态生存期的变量和对象,它们处于被声明处产生,于自身的作用域结束处释放。
全局变量有文件作用域,也就是说,在整个文件作用域中,除了定义了同名局部变量块以外的其他地方(可见性问题),都可以直接引用全局变量;局部变量就是 具有块作用域的对象。
局部变量也可以有静态生存期,静态局部数据的生存期并不与局部作用域一致,它的生存期一直延续到程序运行结束。它产生于所在的函数第一次被调用、该局部静态变量被创建时。函数返回时,静态局部变量处于不可访问的休眠状态。当再次调用该函数时,静态局部变量又苏醒过来,处于可访问状态,与动态局部变量的区别在于,静态局部变量苏醒时,并不需要初始化,而是保持上次休眠状态开始之前的值。
可见性与作用域的区别:几乎是一样的,没有太大的区别,变量的作用域影响着变量的可见性。例如,内外层同时定义同名变量,则外层变量对于内层来说就是不可见的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值