11.1C语言指针 看懂指针与内存和地址关系、内存如何编址

1.指针与内存和地址的关系。

CPU从内存中读取需要的数据,处理后,放回内存。
电脑内存可以是8GB/16GB/32GB等。内存分为一个个内存单元,每个内存单元大小为1个字节(8个比特位),每个内存单元都有一个编号,CPU通过这些编号,找到一个内存空间,这个编号叫做地址,在C语言中,我们又把这个地址叫做指针

形象地来说,内存是一栋楼,一个内存单元是一户人家,指针是门牌号,CPU是我们,我们通过门牌号可以找到那户人家住的地方。
在这里插入图片描述

2.怎么编号(内存怎么编址)

计算机的编址,是通过硬件设计完成,这是大家在计算机上的硬件设计上约定好的共识。

计算机中有很多硬件单元,他们要互相协同工作,所以至少相互之间能进行数据传递,则互相独立的硬件单元用“线”来通信。
所以CPU和内存之间也用线连起来,进行数据传递。我们先知道一个线,此线是”地址总线

此时CPU工作简单理解:(只是为了拓展)
CPU读指令,通过地址线去访问存储器的MAR(地址寄存器)
MAR(地址寄存器)通过选通线去访问矩阵中的数据
矩阵需要通过数据线与MDR(数据寄存器)进行接发。

在这里插入图片描述
在这里插入图片描述

简单了解,例如32位机器有32根地址总线,每根线有两态,0和1(电脉冲有无),则一根线有两种含义,32根线,有2^32种含义,每一种含义代表一个地址。
在这里插入图片描述

也就是说,地址信息被下达给内存,在内存上,就可以找到该地址对应的数据,然后将数据通过数据总线传⼊CPU内寄存器。

在这里插入图片描述

谢谢阅读,若有不足,望指正,如果给你带来了帮助,一键三连吧!
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值