内存分区

未运行时期和运行时期的内存分区是不一样的。

未运行时期

未运行时期分为代码区和全局区。全局区又可划分为数据区和未初始化数据区。

代码区存放的是程序经过编译后的机器指令。

全局区(程序数据)

数据区存放的是初始化的全局变量和静态变量,还有常量。

未初始化数据区存放的是未初始化的全局变量和静态变量。

为什么要分为代码区和全局区呢?

因为代码区可以共享,该程序运行起来代码区是不变的,但是数据区需要改变。

运行时期

代码区和全局区在未运行时已经确定,运行期间就会增加两个区:堆区和栈区。

栈区由编译器管理,存放临时变量和局部变量。

堆区由程序员管理,存放开辟的动态内存空间。

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top