深入理解指针:一文让你彻底理解指针

本文深入浅出地介绍了指针的概念,指出理解指针的关键在于掌握内存管理。通过讲解计算机的存储单位、内存逻辑结构、32位系统内存限制等基础知识,帮助读者建立内存管理的基本认识。接着探讨了数据在内存中的读写、数据长度的管理,以及声明变量的操作。文章强调,指针实际上是一个普通变量,存储着数据的地址和长度信息,而指针运算涉及地址偏移。文中通过实例解释了指针的工作原理,并提醒读者在使用指针时需注意野指针、数组越界和内存泄露等问题。
摘要由CSDN通过智能技术生成

好多人都说指针很难,其实指针并不难,你不是不懂指针,你是不懂内存管理,搞懂内存管理,指针就是纸老虎
内存物理上的实现我们不用关心,这是硬件工程师需要关心的问题,作为软件工程师,我们只需要了解内存的抽象逻辑即可
在学习内存管理之前,我们先来复习一下计算机的存储单位

计算机的存储单位

在计算机中,一个二进制位是最小的存储单位,只有0和1两种状态,我们称之为位(bit)
8个位组成一个字节(Byte),继续往上,使用1024为进制单位,即就是我们常说的1024Byte=1KB,后面还有1024KB=1MB,1024MB=1GB等等。严格来说,B才是他们的单位,而K、M、G不是单位,它们只代表数量,实际上,KB只是KByte的缩写。1KB严格说其含义是1K个Byte,也就是1024个Byte,其他同理。
这里提一句题外话,我们在办理宽带时,明明是100M的网线,为毛下载速度只有10M/S?严格说,宽带的100M指的是100Mbps,和上面的一样,Mbps不是单位,bps才是单位,bps的含义是每秒传输的二进制位数,而100Mbps指的是每秒传输100M个二进制位,也就是100x1024x1024个bit。而我们下载时显示的速度是以字节为单位的,是宽带的数据除以8之后的结果,这就是100M网线下载速度只有10M/S的原因。

内存的逻辑结构

先看张图
内存逻辑结构
在逻辑上,我们把内存分成一个一个的小格子,每个小格子就是一个字节,而每个字节又有8个位。同时为每个小格子编上编号,而这个编号就是我们常说的内存地址。我们常说的计算机有4G内存指的就是计算机有4x1024x1024x1024个存储单元。

为什么32位系统只支持4G内存

关于CPU的体系结构不是本文的重点,不作详细说明,这里只是简单提一下。CPU在读取内存数据的时候,需要通过地址总线进行寻址,而32位的CPU其地址总线也是32位的,也就是说,CPU一次读取的地址最多是32位的,而一个32位的地址又能代表多大内存呢?这里的32位指的是有32个二进制位

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木千

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值