C++之全局对象,局部对象,静态局部对象

本文介绍了C++中的全局对象、局部对象和静态局部对象。全局对象在整个程序执行期间存在,局部对象在调用完成后自动撤销,静态局部对象在局部作用域内,但生命周期覆盖整个程序运行期。此外,文章探讨了各种变量的作用域和生命周期,并提供了相关示例代码。
摘要由CSDN通过智能技术生成

先说两个概念:作用域(scope) 和生命周期(lifetime)

作用域: 名字的作用域指的是知道该名字的程序文本区域

生命周期:对象的生命周期指在程序执行过程中对象存在的时间

 

全局对象, 顾名思义是全局的对象,其作用域是整个程序文本,其对象的声明周期是整个程序的执行过程;

局部对象: 一般说的局部变量都指的是动态局部变量,包括形参,某个语句块中定义的变量等。  动态局部变量是自动对象, 调用时创建,调用完成后自动撤销。 其作用域是局部的(某个块) , 其生命周期也是局部的。

 

静态局对象:  作用域是局部的, 生命周期是全局的, 通过在局部变量前加static 指定。

 

eg.

size_t   count_calls()

{

 

static size_t ctr =0;

return ++ctr;

}

 

int main()

{

       for(size_t i =0; i!=10; ++i)

         cout<<count_calls()<<endl;

     return 0;

}

 

ctr 是静态局部对象, 其作用域是局部的(count_calls()函数中), 但其生命周期是整个程序运行期。

静态局部对象在第一次调用函数时初始化, 只初始化一次

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值