首页 理论教育结构体数组定义和元素引用

结构体数组定义和元素引用

【摘要】:例如,对一维结构体数组的初始化就类似于普通二维数组的初始化,初始化中的注意事项也与二维普通数组初始化时相同或类似。同样也不能将结构体数组元素作为一个整体直接进行输入输出,也需要通过输入输出数组元素的每一个成员分量达到输入输出结构体数组元素的目的。对结构体数组元素操作的唯一例外是可以将结构体数组元素作为一个整体赋给同类型数组的另外一个元素,或赋给一个同类型的结构体变量。结构体数组操作示例。

定义结构体数组的方式与定义结构体变量相同,也有3种方法,分别是:先定义结构体类型然后定义结构体数组;在定义结构体类型的同时定义结构体数组;只定义某种结构体类型的数组。在定义结构体数组的同时还可以定义同类型的结构体变量。下面是这3种定义方式的示例:

结构体数组各元素首先以数组的形式在系统内存中连续存放,其中的每一数组元素的成员分量则按类型定义中出现的顺序依次存放,结构体数组也可以进行初始化。初始化的一般形式是:

struct结构体名数组名[长度]={初始化数据列表};

在对结构体数组进行初始化时,由于结构体数组元素(结构体变量)一般总是由若干不同类型的数据组成的,而且结构体数组又由若干个结构体变量组成,所以结构体数组初始化形式与较它高一维的普通数组初始化形式类似。例如,对一维结构体数组的初始化就类似于普通二维数组的初始化,初始化中的注意事项也与二维普通数组初始化时相同或类似。设有结构体类型定义如下:

那么,下面两种初始化形式表达了同样的意义:

PER per[3]={"Zhang",0,"Wang",0,"Li",0};     //单行初始化形式

PER per[3]={{"Zhang",0},{"Wang",0},{"Li",0}};//分元素初始化形式

结构体数组一般情况下也不能作为整体操作,也必须通过操作数组的每一个元素达到操作数组的目的。由于一个结构体数组元素就相当于一个结构体变量,结构体数组元素需要用下标变量的形式表示。将引用数组元素的方法和引用结构体变量的方法结合起来就形成了引用结构体数组元素成员分量的方法,其一般形式为:(www.chuimin.cn)

数组名[下标].成员名

例如,per[2].name、per[2].count等。

同样也不能将结构体数组元素作为一个整体直接进行输入输出,也需要通过输入输出数组元素的每一个成员分量达到输入输出结构体数组元素的目的。对结构体数组元素操作的唯一例外是可以将结构体数组元素作为一个整体赋给同类型数组的另外一个元素,或赋给一个同类型的结构体变量。

【例10.7】 结构体数组操作(数组元素引用、数组元素的输入输出)示例。

/*Name:ex1007.c*/

#include<stdio.h>