指针变量与地址映射

文章介绍了指针变量的概念,将其比喻为储存地址的变量,通过例子说明如何使用指针访问和修改变量。同时解释了地址映射,即为物理内存分配地址的过程。文章还提到了STM32位带操作中的位带区和别名区,它们类似于地址映射的实例。
摘要由CSDN通过智能技术生成

指针变量与地址映射


前言

最近折返回去看大学时刚学嵌入式时写的代码,看到笔记上写着不明白指针变量和地址映射,转眼间已经是入坑时长两年半的正儿八经的嵌入式工程师了,回头解答一下四年前的问题


1、什么是指针变量

指针变量:储存地址的变量即为指针变量 int *P = &a;P就是指针变量。
指针变量P储存的名为a的int类型的存储空间的地址,对a空间进行操作可以有两种方法;
A. a = 1;将名为a的这块存储空间直接存放一个数据1
B.*P = 1;在P中存放的这个地址的位置放一个数据1,

怎么理解呢,举个例子,把存储空间a比作一个房子。
int a;表示告诉大家都我有一个名称叫a的大平层类型的房子,
int *P = &a;把我房子的位置和门牌号登记到物业管理处的一个名为P的柜子里(这物业管理处的P柜子也是另外一种类型的存储空间,即指针变量,&符号就是把房子地址抄下来
A.a =1;把这个包裹直接放到a房间;
B.*P = 1;把包裹放到物业管理处的p柜子里登记的地址的位置

2、什么是地址映射

映射:物理内存本身没有地址信息,因此为物理内存按一定编码规则分配地址的行为就是地址映射(也称内存映射)

怎么理解呢,继续上述例子,把存储空间a比作一个房子。
映射就是给房子的分配位置和门牌号的过程,
所以重映射就是重新分配的意思。

3、区别

继续例子:
比如给a空间赋值为1,像要放一个包裹到a房间,
要通过指针变量访问房间a,就相当于从P柜子取出这个地址,再根据地址编号去找到房间然后放包裹
如果有地址映射,就相当于房间a没有地址,然后你指着旁边的房子说这就是我要找的地址,然后你说是它就是它,直接扔下包裹就走。


总结

stm32位带操作中的位带区与位带别名区就有点类似与给位带区每个位分配了一个32位地址,别名区就是新地址,通过新地址也能访问。
如有错误,欢迎指正,原创不易,转载留名!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值