一、代码区
存放CPU执行的机器指令,也就是源代码通过编译器编译后的机器代码存放在代码区
代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一个代码即可
代码区是只读的,防止程序意外修改
二、全局区
存放的是全局常量,静态变量,全局变量等
以上两个区是在程序未执行前就已经有了
三、栈区
存放的是局部变量,会在程序结束后在栈区开辟的数据会由编译器自己释放,只要是局部的都在栈区
四、堆区
用new开辟出来的空间是在堆区,指针接收,最后需要由程序员来释放,指针需要delete释放空间并赋值nullptr(在c++中的NULL是"#define NULL 0",c中的NULL是"#define NULL (void*) 0",在c++中NULL不再被定义成一个被转换成地址的值了而是一个整型常量0,用nullptr赋值给指针最安全)