C

C 知识量:16 - 74 - 317

14.2 结构数组><

声明结构数组- 14.2.1 -

结构作为一种数据类型,如int或char一样,也可以用于创建数组。当使用结构创建数组时,就是结构数组。

结构数组的声明示例:

struct teacher maleTeacher[10];

以上代码声明了一个内含10个元素的数组maleTeacher,其每个元素都是一个teacher类型的结构。因此,maleTeacher[0]是第一个teacher类型的结构变量,maleTeacher[1]是第2个...以此类推。

注意:maleTeacher是数组名,而teacher才是结构名。

访问结构数组的成员- 14.2.2 -

要访问结构数组的成员可以借助数组下标和点运算符,如下所示:

struct teacher {
    char name[20];
    char sex[10];
    int age;
};
struct teacher maleTeacher[10];
/*此处对结构数组初始化...*/
char * n = maleTeacher[0].name;  //访问maleTeacher第1个结构元素的name成员。
char m = maleTeacher[2].name[0]; //访问maleTeacher第3个结构元素的name成员的第一个字符。

maleTeacher是数组,name和sex是数组中的数组。但是maleTeacher是结构数组,而name和sex是基本数据类型定义的数组。

嵌套结构- 14.2.3 -

一个结构可以包含另一个结构,即可以进行结构的嵌套使用。例如:使用结构name定义姓名中的名和姓,在另一个结构teacher中包含结构name来完成教师的数据结构设计。

struct name {
    char firstName[20];
    char lastName[20];
};

struct teacher {
    struct name teacherName; //嵌套结构
    char sex[10];
    int age;
};

结构的嵌套可以使程序设计更方便,但是需要注意:被嵌套的结构需要先进行声明。如果要访问嵌套结构成员,需要使用两个点运算符,例如:

struct teacher maleTeacher[10];
/*此处对结构数组初始化...*/
char * fName = maleTeacher[0].teacherName.firstName;