C++内存的分区模型

本文详细解释了内存的四个主要分区(代码区、全局区、栈区和堆区)及其特点,强调了局部变量、全局变量、常量和静态变量的区别,以及它们在内存中的存储位置。还介绍了变量和常量的作用,以及使用#define和const定义常量的方法。
摘要由CSDN通过智能技术生成

一.内存的分区模型

4个区域:不同区域的数据,有不同的生命周期,灵活编程

1.代码区 :存放二进制代码(程序运行前)

2.全局区:全局变量、静态变量、常量、在程序结束后,由操作系统释放。

3.栈区:由编译器自动编译和释放,存放局部变量和函数中的参数

4.堆区:程序员分配和释放

1.1程序运行前

程序编译后,生成exe可执行程序,未执行前分为两个区域:

代码区:共享的(对于频繁执行的代码)、只读(不允许改变)的

存放CPU执行的机器指令。

1.2.局部、全局、常量在内存条中存放的位置

局部变量和全局变量在内存条中存放的区域是不一样的。

常量:1. 字符串常量:双引号引起来的

2.const修饰的变量 :1)const修饰的全局

2) const修饰的局部变量

静态变量:static int a = 10; 也会放在全局区中。

常量、静态和全局变量存放的区域是离得很近的。

局部变量,包括const修饰的局部变量,和上面的那些里的都特别远。

1.3 变量

存在的意义:方便管理内存空间。

内存的地址编号(16进制,代表一个内存)

内存太多记不住:起一个名字a,即可代表这段地址。

1.4 常量

记录程序中不可更改的数据。

方式:

1. #define 常量名 常量值 (宏)

2. const 数据类型 常量名 = 常量值 (const)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值