C++基础编程第二章:寄存器、内存、堆栈

寄存器

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,包括通用寄存器、专用寄存器和控制寄存器。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部分。

  • 寄存器是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。
  • 寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

内存

计算机中最小的储存单位为字节,内存也不例外,每个字节作为一个储存单元。这样就将内存划分成了上亿个内存单元,为了方便管理这些单元,计算机选择了对每一个内存单元进行编号,想要使用一个内存单元时,只需要指定该内存单元编号(即内存地址)即可。为了能编号尽量多的地址,计算机使用了一个4字节(1byte = 8bit)的数来编址内存,这样可以对2^ 32块内存进行编址,每个块为1byte,2^32 byte = 4Gb,可以编址的内存大小为4G大小。

堆栈

首先必须明白堆栈可以指特定的存储区域,也可以指数据结构。

内存堆栈

计算机中的堆和栈是两种不同的内存管理方式。

  • 栈由操作系统自动分配和释放,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈。
  • 堆由程序员分配和释放,一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回
    收 。
    在这里插入图片描述

数据堆栈

解释起来太麻烦了看以下链接。
链接1:数据结构中的堆栈和内存分配中的堆栈
链接2:堆和栈的内存分配

堆区(heap)

堆,优先队列(priority queue);普通的队列是一种先进先出的数据结构(FIFO—First-In/First-Out),元素在队列尾追加,而从队列头删除,(例如:N个人进入一段宽度只能容纳一人的狭长双向山洞,先进去的人肯定先出山洞,大家依次出洞);在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先取出。优先队列具有最高级先出 (largest-in,first-out)的行为特征。

数据栈区(stack)

栈,先进后出(FILO—First-In/Last-Out)(例如:一段狭长的山洞只有入口没有出口,宽度只能容纳一人,山洞里面的位置已经被占住了只能在队尾加入,出去也只能队尾先走)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值