
struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。
结构体是C语言中聚合数据类型(aggregatedatatype)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
结构体的定义
结构体的一般表现形势为
struct 结构体名{
成员列表
};
在成员列表中可以是几种基本数据类型如char,int等,也可以是结构体类型(可以是这个结构体本身,或者是其他结构体类型)
定义一:
定义结构体类型,不定义变量,比如一个人,有性别,有年龄,有名字。
struct Person{
char sex;
float years;
char *name;
};
然后再定义变量
struct Person ReCarChoi;
我们就定义了ReCarChoi这个人,它是Person这个结构体的一个变量,拥有里面的三个属性
(注意:这种定义方式struct关键字不能省略)。
定义二:
定义结构体类型,同时定义变量。比如
struct Person{
char sex;
float years;
char *name;
}ReCarChoi;
当你需要的结构体变量不多的时候,也可以直接省略结构体名字:
struct{
char sex;
float years;
char *name;
}ReCarChoi;
这样做书写简单,但是缺点就是后面无法利用该结构体定义新的变量;
定义三:使用宏定义
#define PER struct Person
PER{
char sex;
float years;
char *name;
};
PER ReCarChoi;
实际就是把struct Person替换成了PER,并无太多看点,只是写法方便了。