一.程序运行前
在程序编译后,会形成exe的可执行程序,在未运行该程序前只有两个区
代码区:
存放函数二进制代码,由操作系统管理
代码区是共享的,在内存中只需有一份即可,防止程序被频繁使用造成内存浪费。
代码区是只读的,防止程序意外改变其代码。
全局区:
全局变量和静态变量存在此处。
全局区中还有常量区,常量分为字符常量和其它常量.(const修饰的变量是只读变量,不可更改值。)
const修饰的全局变量在全局区中。
也由操作系统管理。
二.程序运行后
程序运行后,有四个区。
代码区,全局区,栈区,堆区.
栈区:
由编译器自动分配,存放函数参数值,局部变量。
注意:不可返回数据的地址
堆区:
由程序员手动释放,若程序员不释放,程序结束由操作系统。
程序员用new在堆区开辟。