Skip to content

2.8.2 内存四区

2.8.2 内存四区

我们先前说过内存是存储数据的地方

但是事实上,内存并不能说是"铁板一块"。它存在四个分区各司其职

1.栈区

栈区用来存放局部变量

因为储存在栈区,不同的函数中的变量也分开管理。所以不同的函数中可以定义同名变量

栈区的内存由编译器自动分配,自动释放 如果不希望变量发生上面的过程 那么可以这样定义变量 static int a= 0; 这样变量就会存放到静态全局区 但这个时候要确保静态全局区没有其他同名变量

2.堆区

这是我们自己手动用malloc申请的内存所在的区域 至于malloc是什么,请听下回分说

同时这个区域的内存也需要手动释放(使用代码),并不会自动释放

3.静态全局区

静态全局区存放全局变量,也就是定义在任何函数之外的变量 同时也存放静态变量,常量等等

在整个程序结束后,内存才会释放

4.代码区

存放CPU执行的二进制命令 我们现在还不需要了解太多