C语言 第六章 结构体(3)
目录
结构体数组
结构体数组的声明
方式1:
方式2:
初始化数组元素
对应前面的声明方式1:
对应前面的声明方式2:
结构体数组元素的成员的调用
方式1:使用数组角标方式
方式2:使用指向数组或数组元素的指针
举例1:
结构体数组
结构体数组的声明
结构体数组:
数组元素是结构体变量而构成的数组。 |
格式:
先定义结构体类型,然后用结构体类型定义数组变量。
方式1:
先声明一个结构体类型,再用此类型定义结构体数组
结构体类型 数组名[数组长度];
举例:
typedef struct {int id;char* name;char gender;int age;
} Person; // Person就是一个自定义类型Person pers[3]; // pers是结构体数组名
方式2:
定义结构体类型的同时,定义数组变量:
struct 结构体名 {
成员列表;
} 数组名[数组长度];
举例:
struct Person {int id;char* name;char gender;int age;
} pers[3];
初始化数组元素
对应前面的声明方式1:
举例:
Person pers[3]={
{1001,"Tom",'M',14},
{1002,"Jerry",'M',13},
{1003,"Lily",'F',12}
};
数组元素 | 成员id | 成员name | 成员gender | 成员age |
stus[0] | 1001 | Tom | M | 14 |
stus[1] | 1002 | Jerry | M | 13 |
stus[2] | 1003 | Lily | F | 12 |
对应前面的声明方式2:
举例:
struct Person {int id;char* name;char gender;int age;
} pers[3] = {{1001, "Tom", 'M', 12},{1002, "Jerry", 'M', 11},{1003, "Lily", 'F', 10}
};
结构体数组元素的成员的调用
方式1:使用数组角标方式
格式:
结构体数组名[下标].成员名 |
如:
stus[1].age = 23;
方式2:使用指向数组或数组元素的指针
格式:
指针->成员名
如:
p->age = 24; // p为指向某个数组元素的指针
举例1:
输入一个班级的学生信息(包含id、name、gender、score),并把学习成绩超过全班平均成绩的学生找出来,输出这部分学生的姓名和成绩。
struct Person pers[3] = {{1001, "Tom", 'M', 14},{1002, "Jerry", 'M', 13},{1003, "Lily", 'F', 12}
};for (int i = 0; i < 3; ++i) {printf("%s \t", pers[i].name);
}