立即学习:https://edu.youkuaiyun.com/course/play/8088/165750?utm_source=blogtoedu
1. 结构体数组
定义结构体数组方式:
(1)单独写成一行来定义
struct student stu[3]; //可用下标0—2
(2)定义结构的时候顺便就定义结构体数组
struct student //定义一个结构体类型
{
int num; //学号
.....
} stu[3];
定义时的初始化格式:
struct student stu[] = { {...} , {...} , {...} };
2. 结构体指针
结构体指针,就是结构体变量的指针,这个指针指向该结构体变量所占据的内存段的起始地址。结构体变量的指针也可以指向结构体数组中元素,因为结构体数组中的每个元素他就相当于一个结构体变量;
struct student stu;
struct student *ps;
ps = &stu;
通过结构体变量指针来访问结构体变量的成员:
(1)(*ps).num;//因为*的优先级小于.,所以需要加括号
(2)ps->num = 100;//使用指向结构体成员的运算符->,优先级和.相同
说明:
ps++意味着ps指向下一个数组元素的开始地址;
指针ps定义为指向struct student类型的数据,他只能指向一个结构体型的数据。不能指向某一个数组元素中的成员,比如下面:
ps = &stu[0].num;
3.用指向结构体的指针做函数参数