美文网首页
C++局部静态变量的内存什么时候创建的?

C++局部静态变量的内存什么时候创建的?

作者: 百工之人 | 来源:发表于2018-08-21 17:45 被阅读0次

答:C++11:内存地址早就占用了,但是会在你第一次执行到初始化的那行代码的时候初始化它,线程安全,可重入。
------ by 轮子哥


突发奇想写下了如下代码:可是local static变量number并没有初始化,所以在网上找到了这个答案。然而aaa是有初始化的。并且是在main函数执行前初始化的。

#include <iostream>

using namespace std;

void * funca();
int funcb();

static int aaa = funcb();

int main()
{

    cin.get();
    return 0;
}

void * funca()
{
    static int number = funcb();
    cout << "....\n";
    ++number;
    return &number;
}

int funcb()
{
    cout << "Enter number:";
    int n;
    cin >> n;
    return n;
}

线程安全还没懂。。。

相关文章

  • C++局部静态变量的内存什么时候创建的?

    答:C++11:内存地址早就占用了,但是会在你第一次执行到初始化的那行代码的时候初始化它,线程安全,可重入。---...

  • C语言内存分配(重)

    内存分配的类型: 静态内存分配: 全局变量、静态全局变量、静态局部变量; 静态内存分配是在程序编译时分配的内存空间...

  • [C/C++]C语言中字符串常量存储在哪里

    常量存储总结 局部变量、静态局部变量、全局变量、全局静态变量、字符串常量以及动态申请的内存区 1、局部变量存储在栈...

  • C++面试考点总结

    static作用是什么?在C和C++中有何区别? static可以修饰局部变量(静态局部变量)、全局变量(静态全局...

  • C++ 直接内存管理 new / delete 注意事项

    C++ 编译的程序占用内存: 栈区:执行函数时,函数内局部变量的存储单元在栈上创建,变量的声明周期结束后,这些内存...

  • C/C++ 面试问题收集

    vector的内存原理?数据会不会失效? new和malloc的区别? 静态局部变量存在哪个地方?静态局部变量的地...

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

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

  • JVM(二:内存管理)

    先了解下C/C++的内存管理 ①.内核空间: 操作系统内核代码的运行空间.②.栈: 又叫做堆栈,非静态局部变量/函...

  • C++ 单例模式

    本文介绍C++单例模式的集中实现方式,以及利弊 局部静态变量方式 上述代码通过局部静态成员single实现单例类,...

  • iOS开发中Static和Const关键字的作用

    static修饰的局部变量 使变量成为静态的局部变量,即编译时就为变量分配内存,直到程序退出才释放存储单元。 st...

网友评论

      本文标题:C++局部静态变量的内存什么时候创建的?

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