1.结构数组
结构数组是由具有相同结构的结构变量所组成的数组
<存储类型> struct 结构名 结构数组名【元素个数】【={初值表}】;
struct Student man[3];
结构数组名是结构数组的存储首地址,连续存储。
访问 man[0].a;
结构数组初始化
struct 结构名结构数组名[20]={
{结构数组的元素1初始化},
{结构数组的元素2初始化},
{结构数组的元素3初始化},
.........
{结构数组的元素20初始化},
};
结构体指针
struct Student *ap;
使用(*p).a访问
使用p->a访问
结构指针和结构变量可以作为结构体的成员(也可以嵌套)
2.结构体变量在函数间的传递
较少使用(结构体变量成员作为参数)
结构在函数传递数据概述
1.与数组不同,C语言允许在两个结构体变量之间直接赋值,
因此可以使用结构体变量作为参数进行“值传递”。
结构体变量做参数
2.结构体变量作为参数时,实参将结构体变量所占的内存单元的内容
全部顺序传递给形参,形参也必须是同类型的结构体变量。
3.采用结构体变量的地址(或结构数组的首地址)做实参,用指向相
同结构的结构指针作为函数的形参来接受该地址。
4.在函数调用期间,形参需要占用内存单元,因此采用指针作为形参
,比直接使用结构体变量作为形参,在实践与空间上开销更小。
结构体变量地址作为参数
5.作为形参的结构体变量与作为实参的对应的结构体变量共享内存空间,
当形参的结构体变量发生变化时,实参也随之发生变化。
使用返回值传递结构体
6.C语言中使用函数的返回值传递结构体变量有两种方式,分别为:
直接返回结构体变量、返回结构体指针。
7.返回结构体变量时,函数的类型就是结构体类型,
直接把一个结构体值返回调用函数的主程序。
8.返回结构体地址时,既可以返回结构体变量的首地址
也可以返回结构体数组的首地址,
函数类型为结构指针型类型。