归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
欢迎各位→点赞 + 收藏⭐ + 留言
生命如同寓言,其价值不在于长短,而在与内容!
一起加油!
目录
一、前言:
二、动态生存期:
三、静态生存期:
例:利用静态成员在函数内部统计函数被调用了几次。
例:变量的生存期与可见性。
四、总结:
五、共勉:
每个对象(变量)都有生存期。生存期就是程序执行时,对象(变量)存在(存活)的那段时间。
对象的生存期可以分为静态生存期和动态生存期两种。在函数外部定义的全局对象在整个程序执行的过程中都有效,这些对象从程序运行开始“诞生”直到程序结束“死亡”,这类对象都具有静态生存期;局部对象的生存期取决于定义的方式,有动态生存期和静态生存期两种。
声明在块中的普通的局部对象,生存期从声明点开始,结束于声明所在的块执行完毕之时,几有动态生存期的对象,其存储空间在执行到块的时候被分配,块执行完毕后,对象生存期结束,空间被收回。
如果对象的生存期与程序的运行期相同,则称它具有静态生存期。在命名空间作用域中声明的对象都是具有静态生存期的。局部对象如果要具有静态生存期,则需要用到关键字 static。例如.下列语句定义的变量 i 便是具有静态生存期的变量,也被称为静态变量:
static int i;
静态局部对象的特点是:
也就是说,如果在一个函数中定义了静态局部对象,当函数返回后,该变量空间不会消失,还保留着上一次存储的值,下一次再调用函数时在上一次所存储的值的基础上进行处理或运算,该变量在每次函数调用间实现数据共享。
#include
using namespace std;
int count_calls(){
static int count=0;
count++;
return count;
}
int main(){
int i;
for(i=0;i<10;i++){
cout<
#include
using namespace std;
int i=0;//i为全局变量,具有静态生存期
void other(){
//a,b为静态局部变量,具有静态生存期,在函数内部可见第一次进入other()函数时被初始化
static int a=2;
static int b;
int c=10;//c为局部变量,具有动态生存期,每次进入函数时都初始化
a+=2;
i+=32;
c+=5;
cout<<"----other----"<
以上就是我对C++共享和保护——(2)生存期的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++共享和保护的理解,请持续关注我哦!!!