14.1 示例问题:创建图书目录

Gwen Glenn想要打印出她的图书的详细目录。她希望打印出关于每本图书的各种信息:书名、作者、出版商、版权日期、页数、册数及价格。其中的一些项目(如书名)可以用字符串数组存储,其他的项目需要一个int数组或float数组。使用7个不同的数组来保存所有的信息将是比较复杂的;尤其是如果Gwen还想创建几个完整的列表,一个按书名排序,一个按作者排序,一个按价格排序,等等。一个好的解决方法是使用一个数组,该数组的每个成员包含了一本书的所有信息。

于是,Gwen需要一种数据形式,其中既可包括字符串又可包括数字,还能够分别保存这些信息。C的结构就满足了这种需要。要了解如何建立一个结构以及它如何工作,我们从一个较为简单的示例程序开始学习。为了简化问题,我们施加两个限制条件。首先,每本书的信息只包括书名、作者和当前的市场价格。其次,限制目录中只有一本书。如果您有更多的书,别着急,很快我们就会扩展这个程序。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

请看程序清单14.1所示的程序及其输出结果,然后阅读要点解释。

程序清单14.1 book.c程序

阅读 ‧ 电子书库

阅读 ‧ 电子书库

下面是一个运行示例:

阅读 ‧ 电子书库

程序清单14.1中创建的结构由3个部分组成,每个部分称为成员(member)或字段(field)。这3个部分中一个存储书名,一个存储作者名,一个存储价格。下面是必须掌握的3个重要技巧:

● 建立结构的格式或布局。
● 声明遵循该布局的变量。
● 获取对一个结构变量的各个部件的访问。