C++11目前有四种管理数据内存的方式:
- 自动存储
- 静态存储
- 动态存储
- 线程存储
静态存储是在整个程序执行期间都存在的储存方式。
静态存储有两种方式:
- 全局变量
- 局部静态变量
int time = 0;
int fuc(void)
{
static int time1 = 0;
return 0;
}
- 动态存储
C++ 使用new和delete关键字来声明的和销毁动态变量。因此动态存储比自动存储和静态存储都灵活。new 和delete使程序员对内存哟有了更大的控制权。
静态存储区与动态存储区
静态存储区分为:只读数据区,读写数据区,未初始化区,他们都是在程序编译阶段确定的,在程序执行阶段不会改变(运行期间都存在)。主要存储全局变量、静态局部变量、常量。
动态存储区:分为堆和栈。都是程序运行过程中分配的,大小也随之动态变化。