1.什么是结构体
结构是多种类型的数据的集合。。且每个结构成员都有名字,因此当使用特定的成员时需要指明结构体成员的名字。
2.结构体的声明
以学生的数据为例:
	struct student      //student结构名
	{
		char name;      //name结构体成员名
		int height;     //height结构体成员名
		float weight;   //weight结构体成员名
		char id[20]	    //id结构体成员名
	}part1,part2;       //part1,part2结构体变量名student是结构体的名字称为结构名。
name,height,weight,id都是结构体成员它们可以是不同类型也可以是相同类型。
part1,part2都是定义的结构体变量名,它的类型为,''struct student'.
可以在结构体声明时定义结构体变量名,也可以像下方一样单独定义。
 struct student part3;3.结构体成员的访问
1.结构体成员和”.“运算符
#include <stdio.h>
struct student
{
	char name[30];
	int height;
	float weight;
	char id[20];
};
int main()
{
	struct student part1 = { "王二",180,75.5,"20241011123456" };
	printf("%s\n", part1.name);
	printf("%d\n", part1.height);
	printf("%f\n", part1.weight);
	printf("%s\n", part1.id);
	return 0;
}运行结果 :

可以看到通过”part1.name“这样的方式就能访问到结构体中的name成员 。
2.结构体成员和”->“运算符
struct student
{
	char name[30];
	int height;
	float weight;
	char id[20];
};
void stu1(struct student* str)
{
	printf("%s\n", str->name);
	printf("%d\n", str->height);
	printf("%f\n", str->weight);
	printf("%s\n", str->id);
}
int main()
{
	struct student part1 = { "王二",180,75.5,"20241011123456" };
	stu1(&part1);
	return 0;
}运行结果:
 
 
可以看到用结构体指针通过”->“运算符也能访问到结构体成员。
4.具有结构体成员的结构体
1.结构体自己调用自己
struct Node
{
	int data;
	struct Node* next;
};可以看到结构体中的一个成员为指向它自身的指针,类型为struct Node*
2.结构体嵌套
struct stu1
{
	char name[20];
	int id;
};
struct stu2
{
	char name[20];
	int id;
	struct stu1 s1;
};可以看到结构体stu2中有一个成员的类型是struct stur1 它的变量名是s1.



















