AlgoMooc
图解算法/数据结构/内存与指针

内存与指针

1 / 28基础内容

数据结构动画

内存与指针

加载中
正在加载动画引擎...

本课导读

在学链表、树之前,先搞懂数据到底存在哪、怎么找:内存是一长排带「地址」的小格子,变量是给格子起的名字,指针/引用是「存着另一个格子地址」的格子。

你将学到
  • 内存=带地址的格子,变量=格子的名字
  • 指针/引用=存「别人地址」的格子,不是数据本身
  • 二进制:格子里最终只有 0 和 1

内存长什么样(地址与格子)

想象一栋巨大的宿舍楼,每个房间都有一个唯一的门牌号(比如101、102)。内存就像这栋楼,每个内存单元(一个字节)是一个小格子,也有自己的地址(门牌号)。你可以往格子里放东西(数据),通过地址找到它。

变量、值与名字的关系

变量就像给格子贴的标签。比如你写int age = 18;,相当于在某个格子上贴了“age”标签,并在里面放数字18。标签(变量名)方便你找到格子,而格子里的内容(值)可以改变。

二进制:为什么计算机只有0和1

计算机内部由无数开关组成,开关只有“开”和“关”两种状态,用0和1表示。就像电灯开关,要么亮(1)要么灭(0)。所有数据(数字、文字、图片)最终都转换成0和1的序列存储。

指针/引用到底是什么

指针是一个特殊的变量,它不存普通数据,而是存另一个格子的地址(门牌号)。好比一张纸条上写着“饼干在101房间”,指针就是这张纸条。通过指针,你可以间接访问那个格子里的内容。

为什么链表和树离不开指针

链表就像寻宝游戏:每个宝箱里除了宝物,还有一张纸条写着下一个宝箱的位置。指针就是这张纸条,把分散的格子串起来。树也是类似,每个节点用指针指向子节点,形成分支结构。没有指针,就无法动态连接这些节点。

吴师兄提示:指针存的是「地址」,不是数据本身。