我从第四章中了解到计算机是进行数据处理的设备,而程序表示的就是处理顺序和数据结构。因为处理对象数据是存储在内存和磁盘上的,所以程序必须能自由地使用内存和磁盘。这一章主要围绕内存、指针、数组、栈、和链表进行了详细的阐述。
从物理上来看,内存的构造非常简单。只要在程序上花一些心思,就可以将内存变换成各种各样的数据结构来使用。譬如,物理上有棱有角的内存,在程序上是可以按照逻辑很流畅地使用的。而且这并不特别,它是很多程序中都会用到的一般方法。内存的物理机制十分简单,内存实际上就是一种名为内存IC的电子元件。虽然内存包括多种形式,但从外部来看,其基本机制都是一样的。内存 IC 中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚,通过为其指定地址,来进行数据的读写。
在第二节中作者把内存比作楼房,楼层号就像是地址,没层都存有一字节的数据。指针是C语言的重要特征,指针是一种变量,它所表示的不是数据的值,而是存储着数据的内存的地址。通过使用指针,就可以对任意指定地址的数据进行读写。数组是指多个同样数据类型的数据在内存中连续排列的形式。作为数组元素的各个数据会通过连续的编号被区分开来,这个编号称为索引。栈和队列,都可以不通过指定地址和索引来对数组的元素进行读写。需要临时保存计算过程中的数据、连接在计算机上的设备或者输入输出的数据时,都可以通过这些方法来使用内存。