结构体声明
struct 结构体名称
{
结构体成员1;
结构体成员2;
结构体成员3;
......
};
定义结构体类型变量
struct 结构体名称 结构体变量名
访问结构体变量
要访问结构体成员,我们需要引入一个新的运算符号 —点号(.)运算符。比如book.title就是引用book结构体的title成员,他是一个字符数组;而book.price则是引用book结构体的price成员,它是一个浮点型的变量。
初始结构体的指定成员值
其语法和数组指定初始化元素类似,不过结构体指定初始化成员使用点好(.)运算符和成员名。
比如我们可以让程序只初始化Book的price成员:
struct Book book={.price = 48.8};
还可以不按结构体声明的成员顺序进行初始化:
struct Book book = {
.publisher = "清华大学出版社",
.price = 48.8,
.date = 20171111
};
结构体嵌套
结构体数组
第一种方法是在声明结构体的时候进行定义:
struct 结构体名称
{
结构体成员;
}数组名[长度];
第二种方法是先声明一个结构体类型(比如上面的Book),再用此类型定义一个结构体数组:
struct 结构体名称
{
结构体成员;
};
struct 结构体名称 数组名[长度];
初始化结构体数组
结构体指针
struct Book *pt;
pt = &book;
通过结构体指针访问结构体成员有两种方法:
(*结构体指针).成员名
结构体指针 ->成员名
传递结构体变量和结构体指针
传递结构体变量
传递结构体变量的指针
动态申请结构体
使用malloc函数为结构体分配存储空间