知识卡片

指针:存储地址的存储

专业/工作 · 1292.c

内容

存储器地址本身也是数值,因此可以被编码后存进另一个存储单元里——这样一个专门用来存放地址的存储区就是指针,它记录着”某份数据实际存放在哪里”,而不直接持有数据本身。指针的价值在于把”数据在哪”和”数据是什么”这两件事解耦:只要更新指针指向的地址,就能在不移动数据本身的情况下重新定位它;只要顺着一条条指针依次跳转,就能把物理上分散在存储器各处的数据项,重新串联成使用者想要的任意逻辑结构(如把按书名字母顺序存放的小说、按作者重新串成一条链)。发散:CPU 的程序计数器本质上就是一种指针——它存的不是下一条要执行的指令,而是这条指令所在的地址;这提醒我们,指针并不是数据结构专属的高级技巧,而是”用一个地址代表一份数据的位置”这个最朴素思想的直接应用,从底层硬件的指令流转到高层软件的链表、树,都在反复使用这同一个机制。

参考来源

《计算机科学概论》第8章《数据抽象》