计算机是进行处理数据的设备,而程序表示的就是处理顺序和数据结构。由于处理对象数据是存储在内存和磁盘上的,因此程序必须能自由地使用内存和磁盘
4.1 内存的物理机制
内存实际上是一种名为内存IC的电子元件,虽然内存IC包括RAM,ROM等多种形式,但从外部讲,其基本机制都是一样的
RAM 读写型:分为需要经常刷新保存数据的DRAM和不需要刷新电路就能保存的SRAM
ROM 只读型:一种只能读的内存
内存IC中有电源,地址信号,数据信号,控制信号等用于输入输出的大量IC引脚,通过为其指定地址来进行数据的读写
一个可以存储1024个1字节数据的内存IC:

将电源连接到VCC和GND后,就可以给其它引脚传递0或1这样的信号。数据信号引脚有D0-D7,表示一次可以输入输出8位(1字节)的数据。地址信号引脚有A0-A9,表示可以指定0000000000-1111111111共1024个地址,地址就是用来存储数据的场所
向内存IC中写入和读取数据的方法:

使用A0-A9的地址信号来指定数据的存储场所,然后将数据的值输入给D0-D7的数据信号,并把WR信号设为1,就可完成写的操作
使用A0-A9的地址信号指定数据的存储场所,将RD信号设为1后,指定地址中存储的数据就会被输出到D0-D7的数据信号引脚中
WR(write),RD(read) 这样可以让IC运行的信号称为控制信号,当WR和RD均为0时,写入和读出的操作都无法进行
4.2 内存的逻辑模型
虽然内存的实体是内存IC,不过从程序员的角度来看,也可以将它假想成每层都存储着数据的楼房。数据类型从内存的角度来看,就是占用内存的大小
通过使用变量,即使不指定物理地址,也可以在程序中对内存进行读写,这是因为,在程序运行时,Windows等操作系统会自动决定变量的物理地址

4.3 简单的指针
指针也是一种变量,它表示的不是数据的值,而是存储着数据的内存的地址,通过使用指针,就可以对任意地址的数据进行读写

4.4 数组是高效使用内存的基础
数组是多个同样数据类型的数据在内存中连续排列的方式,作为数组元素的各个数据会通过连续的编号被区分开,这个编号称为索引。指定索引后,就可以对索引对应地址的内存实现读写操作,而索引和内存地址的变换工作则是由编译器自动实现的。数组定义中指的数据类型,表示一次能够读写的内存大小

4.5 栈,队列及环形缓冲区
栈先入后出,队列先入先出
如果在内存中留出栈和队列所需要的空间,并确定好写入和读取的顺序,就不需要指定地址和索引了


4.6 链表

4.7 二叉树


被折叠的 条评论
为什么被折叠?



