目录
1.什么是结构体
结构体是可以由创建者自行定义的可包含有多种数据类型的自定义类型。世界上的数据,并非都能由一种类型即可表示,例如要表示一个人,最基础的就有“姓名、年龄、性别、身份证号、身高、体重、性格、爱好...”等多种要素,并非仅用char 或者其他单一类型可以表示,因此为了能够尽可能地记录并表示世界上的各种数据,结构体的作用必不可少。
结构体:一些值的集合,构成结构体的值被称为结构体成员,结构体成员可以是不同类型的变量。
我们试着将上面提到的“一个人”,用结构体表示一下。
struct human
{
char name[20];//姓名
int age;//年龄
char sex[10];//
int ID_Number[18];//身份证号
unsigned int height;//身高
unsigned int weight;//体重
//......其他
};
2.结构体的声明及什么是匿名结构体
如何声明一个结构体呢?
struct tag//结构体类型(自定义)
{
ElemTpye member - list;//成员列表
}Variable - list;//变量列表
其中 “struct tag” 为此结构体的类型,要注意使用时 struct 不能丢掉,除非对此结构体进行重命名。
注:声明时在未重命名的结构体的变量列表处的变量为全局变量
什么是匿名结构体呢?
在声明结构体时,进行不完全的声明,例如:
struct
{
char name[100];
unint price;
}book;
我们可以发现,这个结构体的类型不完全,struct 后面没有跟名字,因此被称为匿名结构体。那我怎么才能使用它呢?
匿名结构体只能在变量列表处,也就是结构体结尾的分号前创建变量,且这个变量为全局变量,相当于一次性使用。不能在别处创建变量。
注:两个结构体成员列表相同的匿名结构体,类型不相同,代码如下:
struct
{
int a;
char b;
float c;
}*p;
//结构体指针,指向结构体
struct
{
int a;
char b;
float c;
}a;
//匿名结构体的成员如果一样,在编译器看来也