一、栈
- 局部变量(main中创建的变量属于局部变量,最后创建的最先被删除);
- 函数的参数值;
- 临时变量
以上都是在栈上获得内存的,它们获取的方式都是由编译器自动执行的。
二、堆
- 动态内存分配(new/malloc)
程序员自己决定什么时候申请,什么时候释放
三、静态存储区
- 全局变量
- 静态变量(static变量)
这块内存在程序编译时已分配好,在整个程序运行期间都存在
四、常量存储区
- 常量
- 常量字符串都存放在静态存储区,返回的是常量字符串的首地址.
这是一块比较特殊的存储区,他们里面存放的是常量,是不允许修改的