C++语言程序设计

我们进行程序设计时，很少仅用到一些简单的数据类型，常常要将一些数据类型组合在一起。例如，假定要记录一批小孩的身高、重量、年龄和性别。可以用数组来处理：
const int nMaxChildren = 1000;
double heights[nMaxChildren];
double weights[nMaxChildren];
int years[nMaxChildren];
int months[nMaxChildren];
char gender[nMaxChildren];
如果我们要查找某一个小孩的身高、体重等，可以通过读取有相同下标的数组元素得到，如heights[5], weights[5]等。但是，一个小孩到底有哪些相关的数据项，不是很明显。况且，不能排除要将某些数组排序，如按身高排序，在这种情况下，要获取某一个小孩的相关数据项将十分困难。
C++中，提供了结构（struct）数据类型，它能够识别一组相关的数据。
我们已经知道数组，它用来保存线性数据，但是它有许多缺点：
◇ 数组的大小是固定的，在程序运行期间是不能改变的。我们在定义数组时必须足够大，保证程序运行时不会溢出。但是，这也常常导致大量数组存储单元的浪费。
◇ 数组需要一块连续的内存空间。但当应用程序较大，数组需要的内存块也较大时，这可能会降低程序的效率。
◇ 如果在数组元素中，有较多的插入操作，则被插元素后的元素需要向后移位，这也浪费机器的运行时间。
链表也是表示线性数据最有用的方法之一，用链表保存线性数据，可以克服数组的问题。使用链表数据结构需要结构和指针作为基础，本章中，我们将学习结构和链表的有关知识。