内存四区
代码区:存放函数的二进制代码,由系统管理
全局区:全局变量和静态变量以及常量(字符串常量,全局const)
堆区:由程序员分配和释放,若程序员不释放,则由程序结束时由操作系统
栈区:由编译器自动分配释放,存放函数的参数值及局部变量
程序运行前:
生成exe可执行程序,未执行该程序分为两个部分
代码区:
存放cpu执行的机器指令
代码区是共享的,目的是对于频繁执行的程序,内存中只需要由一份代码
代码区是只读的,放置程序意外的更改了它
全局区:
全局变量和静态变量存放的地方
全局区还包含了常量区
该区域的数据在程序结束后由操作系统释放
程序运行后:
栈区:
是由编译器自动分配和释放的,放了函数的参数和局部变量,形参也会放在这
注意:不要返回局部变量的地址,因为该地址是由编译器管理的,函数结束后 这个地址的内存就被释放了
堆区:
由new申请开辟的,可以从函数将地址返回。因为该内存空间是由程序员管
理的,在堆区的开辟的内存空间