static变量初始化
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变量初始化相关推荐
- Java Static 变量初始化
目录 Java Static 变量初始化 直接赋值 static块初始化 实例方法初始化 解决方案 Java Static 变量初始化 static变量初始化方式 直接赋值 static块初始化 实例 ...
- static 变量初始化顺序的问题和解决方案
http://www.cppblog.com/yindf/archive/2009/03/20/77304.aspx 最近在coding的时候,写了这么一段代码: A.h 1// A.h 2#incl ...
- java static 变量 初始化一次_关于java static变量初始化的疑问
java中,类的static变量作为类变量,只需要被一次初始化,就可使用,但是,我在程序中遇到一个问题: 在web.xml中配置listener,服务器启动时,ServletContextListen ...
- java中的static变量初始化_Java初始化静态变量的时间顺序
1. 开始吧! 今天,我们来探讨交流下静态变量初始化过程.Java虚拟机在类加载期间也同样遵循这个过程. 2. 初始化过程 在较高的层次上,JVM执行以下步骤: 首先,加载并链接类.然后,这个过程的& ...
- c语言static变量初始化
<程序员面试笔试宝典>第123页,举了个例子 #include <stdio.h> void fun(int i) {static int value=i++;printf(& ...
- c++类内的static变量初始化和static函数
class A {static int si; static void sfunc(){cout<< si;} }; int A::si=0;//静态成员不能在类内初始化. 使用时:int ...
- java基础static变量初始化和赋值的例子
1.代码案例 public class A {public static int x;static{x = B.y+ 1;} } public class B {public static int y ...
- C++ static 变量和线程安全和单例模式
static变量初始化顺序 1.1 全局变量.文件域的static变量和类的static成员变量在main函数执行之前初始化 1.2 局部静态变量在第一次被使用时初始化 static变量的线程安全 2 ...
- java static变量何时初始化_Java 静态变量何时初始化?
小编典典 从请参阅Java静态变量方法: 它是一个属于类而不属于对象(实例)的变量 静态变量在执行开始时仅初始化一次.在初始化任何实例变量之前,将首先初始化这些变量 该类的所有实例共享一个副本 静态变 ...
最新文章
- Spring Security 和 Apache Shiro
- java邮箱找回密码_Spring实现简单的邮箱找回密码功能
- Python-OpenCV 笔记2 -- 图像的基本属性和操作
- 探秘云游戏背后实时音视频技术实践
- 【无套路送书】架构师是怎样炼成的?
- Apollo进阶课程㊵丨Azure仿真平台使用
- 仿小说蓝色小说网站导航引流网站源码 带手机版
- 使用 ssmtp 於 shell 透過 Gmail 寄信
- 蓝桥杯 BASIC-18 基础练习 矩形面积交
- paip.http发文汉字乱码变问号的解决
- st语言 数组的常用方法_st语言
- 微信小程序阻止默认冒泡事件
- bum报文_数据中心VxLAN技术概念和原理解读
- 用计算机对人造卫星,人造卫星轨迹计算主要涉及计算机应用中的______
- 使用单链表制作电子通讯录
- 来此加密证书申请,验证,自动部署
- 【词性标注】一篇文章弄懂词性标注
- Linux学习日记之初始用户管理
- [272]如何把Python脚本导出为exe程序
- 2021-08-03 Linux题目整理
热门文章
- 九、深入Java字符串(上篇)
- Kaggle入门五大步,跟着做就对了
- 对凸优化(Convex Optimization)的一些浅显理解
- 直播 | 天津大学副教授张长青:多模态融合的基础问题及算法研究
- AI in RTC 创新挑战赛,决赛打响
- 经典论文复现 | PyraNet:基于特征金字塔网络的人体姿态估计
- 《模式识别导论》特性选择与特征提取概要
- 取消挂载点可以节省磁盘么_Linux下NTFS格式外接硬盘的挂载,取消挂载和开机自动挂载...
- Pinpoint【环境搭建 01】JDK\HBase\Pinpoint Collector+Web 最新版 2.3.3 安装配置运行验证及脚本文件分享(避坑指南捷径指北)
- C++ pthread