一、结构体的声明
1.结构的基础知识
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构是一种集合。结构种的每个成员可以是不同类型。
数组是一组相同类型元素的集合,放在数组中的所有元素类型是相同的。
2.结构的声明
struct tag
{
member-list;
}variable-list;
例如:
typedef struct Stu
{
char name[20];
int age;
char sex[5];
char id[20];
}Stu;
struct: 结构体关键字,它表明是个结构体,结构体的声明必须有struct。 结构体标签: 它是你给你的结构体类型取名字 struct?结构体标签: 这表示一个结构体类型 成员列表: 可以有多个成员,每个成员有各自的数据类型和成员变量名。 结构体变量列表: 可以有多个变量,是使用结构体类型创建的变量,一般结构体变量列表省略不写,先进行结构体声明,之后再创建结构体变量。
3.结构成员的类型
结构的成员可以是标量、数组、指针,甚至是其他结构体。
4.结构体变量的创建和初始化
结构体变量的创建:
类型不占内存,只有用类型创建变量后才占用内存。
结构体变量的初始化: 初始化: 创建变量的同时给变量赋值
二、结构体成员的访问
结构体变量?.?结构体成员变量 结构体指针?->?结构体成员变量
1.结构体变量访问结构体成员
结构体变量通过点操作符(.)访问结构体成员
2.结构体指针访问结构体成员
结构体指针通过操作符(->)访问结构体成员。
三、结构体传参
结构体传参的时候,要传结构体的地址。
如果传的是结构体变量,形参是实参的一份临时拷贝,会造成大量内存空间的浪费。
如果传的是结构体的地址,形参接收到的是个指针,形参部分只要开辟一个指针变量的大小的内存空间,只需要4个字节或8个字节,减少空间的浪费。
|