美文网首页C++
《C++ Primer》6.1 函数基础 —— 局部静态对象

《C++ Primer》6.1 函数基础 —— 局部静态对象

作者: codinRay | 来源:发表于2017-03-17 16:32 被阅读0次

局部静态对象

局部静态对象在程序的执行路径第一次经过对象定义语句时初始化,并且<u>直到程序终止才被销毁。</u>

一个例子:

//auto_int.cpp
int func() {
    int val = 0;
    return val++;
}
int main() {
    int times = 10;
    while (times--) {
        cout << func() << ' ';
    }
    return 0;
}

以上程序执行的结果为:
0 0 0 0 0 0 0 0 0 0

而使用静态变量:

//static_int.cpp
int func() {
    static int val = 0;
    return val++;
}
int main() {
    int times = 10;
    while (times--) {
        cout << func() << ' ';
    }
    return 0;
}

结果为:
0 1 2 3 4 5 6 7 8 9

由此可以发现: static的变量在当前块结束(函数结束调用)之后也还是有效的。

相关文章

  • 《C++ Primer》6.1 函数基础 —— 局部静态对象

    局部静态对象 局部静态对象在程序的执行路径第一次经过对象定义语句时初始化,并且 直到程序终止才被销毁。 一个例子:...

  • 1. partone---第六章 函数

    函数是一个命名了的代码块,可有0个或多个参数。 6.1 函数基础 局部对象 自动对象: 存在于块执行期间,当块执行...

  • 第6章 函数

    6.1 函数基础 6.1.1 局部对象 函数参数:实参是函数中形参的初始值,存在对应关系,但并没有规定实参的求值顺...

  • 《大学专业生涯 计划书单》

    1、基础中的基础 →C++ 《C++Primer》 《EffectiveC++》 《Inside the C++ ...

  • [进阶]C++:函数

    函数基础 函数包括:返回类型、函数名字、0个或多个形参组成的列表 形参和实参 实参是形参的初始值 局部静态对象 在...

  • 任务列表

    C++ 《C++ primer》、《STL源码解析》、《effective C++》、《深度搜索c++对象模型》 ...

  • C++---CHAPTER 12 : Dynamic Memor

    静态内存、栈内存、动态内存 静态内存:保存局部static对象;类static对象、已经定义在任何函数之外的变量。...

  • C++IO的clear()函数

    参考C++ Primer中文版279页8.1.2 C++的IO对象中存在一个clear()成员函数,作用是将流的条...

  • c++ 类与对象练习程序

    代码来源:c++ Primer Plus(第6版) 主要是练习一下面向对象的基础知识;

  • C++supplement之局部变量

    局部变量:形参和函数体内定义的参数都称之为局部变量。其生命周期依赖于函数定义的方式。分为自动对象和局部静态对象;自...

网友评论

    本文标题:《C++ Primer》6.1 函数基础 —— 局部静态对象

    本文链接:https://www.haomeiwen.com/subject/vfgenttx.html