1.在C++中,全局static变量和class的static成员变量在main函数之前初始化,main函数之后销毁

2. 函数内部的局部static变量在该函数第一次被调用时初始化,在main函数之后销毁

3.对于static数据即使是函数内部的对象则存放在全局数据区,全局数据区的数据并不会因为函数的退出就将空间释放。

#include <iostream>using namespace std;struct Date{Data(){cout<<"create"<<endl;}~Data(){cout<<"destroy"<<endl;}};static Data g_sData;int main(){cout << "main start" << endl;cout << "main end" << endl;return 0;}

output:

create
main begin
main end
destroy

#include <iostream>using namespace std;struct Date{Data(){cout<<"create"<<endl;}~Data(){cout<<"destroy"<<endl;}};class Test{static Data m_sData;};Data Test::m_sData;int main(){cout << "main start" << endl;cout << "main end" << endl;return 0;}

output:

create
main begin
main end
destroy

#include <iostream>using namespace std;struct Date{Data(){cout<<"create"<<endl;}~Data(){cout<<"destroy"<<endl;}};void test(){static Data sData;}int main(){cout << "main start" << endl;cout << "first time call test" << endl;test();cout << "second time call test" << endl;test();cout << "main end" << endl;return 0;}

main begin
first
create
second
main end
destroy

在看一个比较BT的题目。

在系统中只能调用一次函数

void caller()
{cout<<"first call\n";
}void FirstCall()
{static int d = (caller(),1);
}int main()
{FirstCall();FirstCall();
}

static变量初始化相关推荐

  1. Java Static 变量初始化

    目录 Java Static 变量初始化 直接赋值 static块初始化 实例方法初始化 解决方案 Java Static 变量初始化 static变量初始化方式 直接赋值 static块初始化 实例 ...

  2. static 变量初始化顺序的问题和解决方案

    http://www.cppblog.com/yindf/archive/2009/03/20/77304.aspx 最近在coding的时候,写了这么一段代码: A.h 1// A.h 2#incl ...

  3. java static 变量 初始化一次_关于java static变量初始化的疑问

    java中,类的static变量作为类变量,只需要被一次初始化,就可使用,但是,我在程序中遇到一个问题: 在web.xml中配置listener,服务器启动时,ServletContextListen ...

  4. java中的static变量初始化_Java初始化静态变量的时间顺序

    1. 开始吧! 今天,我们来探讨交流下静态变量初始化过程.Java虚拟机在类加载期间也同样遵循这个过程. 2. 初始化过程 在较高的层次上,JVM执行以下步骤: 首先,加载并链接类.然后,这个过程的& ...

  5. c语言static变量初始化

    <程序员面试笔试宝典>第123页,举了个例子 #include <stdio.h> void fun(int i) {static int value=i++;printf(& ...

  6. c++类内的static变量初始化和static函数

    class A {static int si; static void sfunc(){cout<< si;} }; int A::si=0;//静态成员不能在类内初始化. 使用时:int ...

  7. java基础static变量初始化和赋值的例子

    1.代码案例 public class A {public static int x;static{x = B.y+ 1;} } public class B {public static int y ...

  8. C++ static 变量和线程安全和单例模式

    static变量初始化顺序 1.1 全局变量.文件域的static变量和类的static成员变量在main函数执行之前初始化 1.2 局部静态变量在第一次被使用时初始化 static变量的线程安全 2 ...

  9. java static变量何时初始化_Java 静态变量何时初始化?

    小编典典 从请参阅Java静态变量方法: 它是一个属于类而不属于对象(实例)的变量 静态变量在执行开始时仅初始化一次.在初始化任何实例变量之前,将首先初始化这些变量 该类的所有实例共享一个副本 静态变 ...

最新文章

  1. Spring Security 和 Apache Shiro
  2. java邮箱找回密码_Spring实现简单的邮箱找回密码功能
  3. Python-OpenCV 笔记2 -- 图像的基本属性和操作
  4. 探秘云游戏背后实时音视频技术实践
  5. 【无套路送书】架构师是怎样炼成的?
  6. Apollo进阶课程㊵丨Azure仿真平台使用
  7. 仿小说蓝色小说网站导航引流网站源码 带手机版
  8. 使用 ssmtp 於 shell 透過 Gmail 寄信
  9. 蓝桥杯 BASIC-18 基础练习 矩形面积交
  10. paip.http发文汉字乱码变问号的解决
  11. st语言 数组的常用方法_st语言
  12. 微信小程序阻止默认冒泡事件
  13. bum报文_数据中心VxLAN技术概念和原理解读
  14. 用计算机对人造卫星,人造卫星轨迹计算主要涉及计算机应用中的______
  15. 使用单链表制作电子通讯录
  16. 来此加密证书申请,验证,自动部署
  17. 【词性标注】一篇文章弄懂词性标注
  18. Linux学习日记之初始用户管理
  19. [272]如何把Python脚本导出为exe程序
  20. 2021-08-03 Linux题目整理

热门文章

  1. 九、深入Java字符串(上篇)
  2. Kaggle入门五大步,跟着做就对了
  3. 对凸优化(Convex Optimization)的一些浅显理解
  4. 直播 | 天津大学副教授张长青:多模态融合的基础问题及算法研究
  5. AI in RTC 创新挑战赛,决赛打响
  6. 经典论文复现 | PyraNet:基于特征金字塔网络的人体姿态估计
  7. 《模式识别导论》特性选择与特征提取概要
  8. 取消挂载点可以节省磁盘么_Linux下NTFS格式外接硬盘的挂载,取消挂载和开机自动挂载...
  9. Pinpoint【环境搭建 01】JDK\HBase\Pinpoint Collector+Web 最新版 2.3.3 安装配置运行验证及脚本文件分享(避坑指南捷径指北)
  10. C++ pthread