【代码运行前生成:代码区、全局区】、【代码运行后生成:栈区、堆区】
- 代码区(共享、只读):存放函数体的二进制代码,由操作系统进行管理;
- 全局区:全局变量 (没在函数体内的变量)、静态变量 (
static
)、常量 (const
),由操作系统释放; - 栈区:函数的参数、局部变量,由编译器进行管理(不要
return
局部变量的地址); - 堆区:
数据类型 * 指针名 = new 数据类型(变量值),数据类型 * 指针名 = new 数据类型[数组长度]
,用指针接收和访问,由程序员进行管理(delete 指针名, delete[] 指针名
释放单数据和数组)。int * p1 = new int(1); // 数据类型 * 指针名 = new 数据类型(变量值) delete p1; // delete 指针名 int * p2 = new int[5]; // 数据类型 * 指针名 = new 数据类型[数组长度] delete[] p2; // delete[] 指针名