四个区域:代码区,全局区,栈区,堆区
①代码区
作用:存放CPU执行的二进制机器指令
特点:只读/共享
②全局区(又分data区和bss区)
存放全局变量,静态变量,常量
data区:已经初始化的全局变量、静态变量、常量(单独划分出一个常量区)
bss区:未被初始化的全局变量、静态变量
特点:
该区变量在程序运行期间一直存在,程序结束由系统回收
③栈区
存放局部变量、函数形参、返回值(>4字节,<4字节存放在寄存器)
特点:
①栈是一种先进后出的内存结构,由编译器自动分配释放数据
②栈空间较小,不适合存放大量数据
④堆区
存放malloc函数申请的空间
特点:
由程序员手动申请和释放。若程序员不释放,程序结束后由系统回收