结构体类型的定义
一般形式为:
struct 结构体名 {
类型名1 成员名1;
...
类型名n 成员名n;
};
struct是结构体类型的标志。结构体名是由用户定义的标识符,它规定了所定义的结构体类型的名称。结构体类型的组成成分称为成员,成员名的命名规则与变量名相同。
用途:把不同类型的数据组合成一个整体--自定义数据类型。
结构体类型定义可以包含另外的结构体,即结构体是可以嵌套的。
定义结构体类型只是说明了该类型的组成情况,编译系统并没有给它分配内存空间,就像系统不为int等类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量。
结构体变量的定义:
1.先定义结构体类型,再定义结构体变量:
struct 结构体名 {
类型名1 成员名1;
...
类型名n 成员名n;
};
struct 结构体名 变量名;
2.定义结构体类型的同时定义结构体变量:
struct 结构体名 {
类型名1 成员名1;
...
类型名n 成员名n;
}变量名1,变量名2,...;
3.直接定义结构体类型变量,省略结构体类型名,由于这种定义形式没有说明结构体类型,所以这种方式通常用在不需要再次定义此类型结构体变量的情况下:
struct {
类型名1 成员名1;
...
类型名n 成员名n;
}变量名1,变量名2,...;
结构体变量中的各成员在内存中是按定义顺序依次排列的。
结构体变量的初始化
对结构体类型变量赋初值时,按每个成员的结构体中的顺序一一对应赋值。
在定义时初始化的3种方式:
struct 结构体名 {
类型名1 成员名1;
...
类型名n 成员名n;
};
struct 结构体名 变量名 = {初始数据};
struct 结构体名 {
类型名1 成员名1;
...
类型名n 成员名n;
}变量名1 = {初始数据};
struct {
类型名1 成员名1;
...
类型名n 成员名n;
}变量名1 = {初始数据};