
上QQ阅读APP看书,第一时间看更新
3.3 结构数组
结构数组(Structure Array)是把一组彼此相关、数据结构相同但类型不同的数据组织在一起,便于管理和引用。类似于数据库,但其数值组织形式更灵活。
3.3.1 结构数组的创建
1.直接输入法
在为结构数组中元素直接赋值的同时定义该元素的名称,并使用“.”将结构变量名与元素名连接。

说明:创建1×1的结构数组时可省略记录号(record#)项。
【例3-3】 建立学生档案的小型数据库。

运行结果如下:

可以继续添加其他学生数据的结构变量,只需要添加记录号即可:

此时输入“student”,将只得到该结构的成员变量名而不显示内容:

可以继续在命令行窗口中查询student的具体内容:


2.使用struct()函数生成结构数组

【例3-4】 用struct()函数创建结构数组变量。

运行结果如下:

3.3.2 结构数组的操作
1.在结构数组中添加项
如果用户想在一个结构数组中添加其他项,直接按照生成格式输入即可。
【例3-5】 在【例3-3】中的学生数据库student,若要添加元素项height和weight,只需输入:

运行结果如下:

从上面的输出结果可知,在student中新添加了height和weight两项纪录,进而可显示:

2.在结构数组中删除项

说明:当fields是字符串或单元数组变量时,将一次性删除多项。
【例3-6】 对【例3-5】中结果,输入语句:

运行结果如下:


3.在结构数组中调用元素项
对于结构数组中的任何信息,可以通过“结构体名称.元素项名称”的格式取出。
例如,对【例3-6】中结果,输入语句:

也可直接取出所有同学的姓名和分数,如执行命令:

3.3.3 结构数组与单元数组的转换

例如,对于【例3-4】中创建的结构数组S,执行命令:
