简单分4个区
程序运行前:代码区、全局区
程序运行时:栈区、堆区
1、代码区
特点:共享、只读
2、全局区
存放全局变量、静态变量、常量(字符串常量、const修饰的全局常量)
相对低地址
3、栈区
编译器自动分配内存,释放内存,存放形参,局部变量
不能把函数内变量的地址做返回值,因为局部变量在函数调用结束后,就释放了内存,地址并不指向之前的那个变量了。
4、堆区
new关键字,程序员手动分配,delete手动释放内存,当使用new创建一个数组时,释放需要delete [] arr,因为只写数组,对应到数组首元素的指针,只能释放第一个,后边的不能释放。