stack(栈区):存放局部变量、函数参数、返回数据和返回地址,系统自动分配释放。栈顶从高地址向低地址的方向生长,操作方式类似于数据结构中的栈。
heap(堆区):由程序员通过malloc()等函数分配释放,若程序员不释放,程序结束时可能由OS回收。它与数据结构中的堆是两回事,分配方式倒是类似于链表。堆的生长方向从低地址向高地址的方向生长。
static area(静态区):存放全局变量和静态变量,程序结束后由系统释放。(关于literal constant area(文字常量区):不同编译器有不同的实现)
code area(代码区):存放函数二进制代码。
注:文字常量(literal constant)和常变量(constant variable)区别:文字常量编译之后存储在代码区,不可寻址,常变量存储在数据区,可寻址。(1)文字常量又称为“字面常量”,包括数值常量、字符常量和符号常量。(2)常变量指定义时必须显示初始化且值不可修改的变量。与其他变量一样被分配空间,是可以寻址的。
内存四区
最新推荐文章于 2023-10-25 16:07:10 发布