一、结构体
1、结构体的声明
如下struct是结构体的声明,里面可以放很多个不同类型的数据,而结构体就是这些值的集合,这些值又称为结构体的成员。
如下面就是利用结构体去设定一个学生的信息,如姓名,年龄这些都不是一样的数据类型,但是可以放在一个结构体类型中,从而去一下定义不同类型的数据了,这样就可以方便使用。
int main()
{
struct Stu
{
char name[20];//姓名
int age;//年龄
char sex[5];//性别
char id[20];//学号
};
return 0;
}
还用一种声明就是特殊的声明,如下这种特殊的声明就是省略标签名的声明,只定义成员变量却不定义变量名的声明。
struct
{
int a;
char b;
float c;
}x;
struct
{
int a;
char b;
float c;
}a[20], *p;
2、结构体的自引用
结构体的成员是可以放很多种的类型,所以能不能把结构体放入结构体呢,当然也是可以的,但是不能嵌入同类型的,例如下方代码1这样就是不能使用的。但是可以使用结构体指针,例如代码2就是使用结构体指针使用的嵌套。
如果没有结构体指针的话,他就会一直嵌套停不下来,所以需要一个指针结束,且必须在末尾。
//代码1
struct Node
{
int data;
struct Node next;
};
//代码2
struct Node
{
int data;
struct Node* next;
};
3、结构体变量的定义和初始化
既然我们了解什么是结构体的声明和如何嵌套,那么我们可以进行变量的定义和初始化了,如下方代码第一个Point就是一个结构体变量,然后在大括号后面的p1就是在声明结构体变量的同时定义了变量p1,而怕p2就是根据Point这个结构体类型进行定义的第二个结构体变量,这个结构体的成员和p1一样,p3就是在定义p3变量的同时进