9.1 C++内存分区模型-程序运行前

9.1 C++内存分区模型-程序运行前

C++将内存大致分为4个区域:

代码区存放程序的二进制代码
全局区存放全局变量、静态变量、常量,程序结束后由操作系统释放
栈区由编译器分配释放,存放局部变量等
堆区由程序员管理释放,如果程序员不释放,程序结束后自动释放

程序编译后,生成了exe可执行程序,在程序未运行之前,有两个区,分别是代码区和全局区。

9.1.1 代码区

代码区存放了exe的二进制指令,有两个特性:

  • 共享。对于一个exe,只存有一份指令,每次运行时都执行这部分指令。
  • 只读。防止程序意外的修改了指令,导致程序无法实现预期功能。
9.1.2 全局区

全局区存放:全局变量、静态变量、全局常量、字符串常量
局部常量不存在全局区。
这里的常量就是const修饰的变量。
静态就是static修饰的变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值