static变量初始化
来源:互联网 发布:php解析html 编辑:程序博客网 时间:2024/06/05 06:34
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;}
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 变量的初始化
- static变量初始化
- static 变量初始化问题
- static变量初始化
- static 成员变量 初始化问题
- C++ static 变量的初始化
- 静态(static)变量的初始化
- static成员变量定义初始化
- c# static变量的初始化
- static变量初始化 静态块
- static变量只初始化一次
- 初始化const, static, const static, static const成员变量
- 初始化const, static, const static, static const成员变量
- java中static变量与非static变量初始化顺序
- static const 型成员变量的初始化
- Java中static final变量的初始化
- c++ 类中static变量初始化问题
- PHP的static变量初始化问题
- page152
- MySQL编码、Spring配置中编码、Struts中文问题
- linux下C语言多线程(二)线程的私有数据
- Java DecimalFormat的主要功能及使用方法
- 开启当前会话的10046事件
- static变量初始化
- 双色球程序
- 专业课复习进行中
- socket
- IOS开发之自定义UIActionSheet
- B树、B-树、B+树、B*树
- 位运算简介及实用技巧
- 电阻基础知识
- AVL树实现代码