第四章
熟练使用有棱有角的内存——计算机是进行数据处理的设备,而程序表示的就是处理顺序和数据结构。由于处理对象数据是存储在内存和磁盘上的,因此程序必须能自由地使用内存和磁盘。因此,大家有必要对内存和磁盘的构造有一个物理上的(硬件的)和逻辑上的(软件的)认识。其实,从物理上来看,内存的构造非常简单。只要在程序上花一些心思,就可以将内存变换成各种各样的数据结构来使用。譬如,物理上有棱有角的内存,在程序上是可以按照逻辑很流畅地使用的。而且这并不特别,它是很多程序中都会用到的一般方法。存实际上是一种名为内存 IC 的电子元件。虽然内存 IC 包括 DRAM、SRAM、ROM”等多种形式,但从外部来看,其基本机制都是一样的。内存 IC 中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚,通过为其指定地址来进行数据的读写。
指针是 C 语言的重要特征,但很多人都说它难以理解,甚至还有人因无法理解指针而对 C 语言的学习产生了很强的挫败感。指针也是一种变量,它所表示的不是数据的值,而是存储着数据的内存的地址。通过使用指针,就可以对任意指定地址的数据进行读写。二叉查找树”是指在链表的基础上往数组中追加元素时,考虑到数据的大小关系,将其分成左右两个方向的表现形式使用二叉查找树的便利之处在于可以使数据的搜索等更有效率。
我相信,只要下足功夫,花一点心思就可以熟练地使用内存实现栈处理、链表处理、二叉查找树处理等。