结构体嵌套:
将一个已经声明的结构体在另一个结构体内作为成员变量进行定义,并在外层结构体初始化的同时最自己进行行初始化,使用花括号包裹自身成员变量。
打印时注意为:结构体名称.结构体成员结构体.结构体成员结构体的成员
#include <stdio.h>
struct Date
{
int year;
int month;
int day;
};
struct Book
{
char title[128];
char author[40];
float price;
struct Date date; //结构体的嵌套
char publisher[40];
} book = {
"《C语言》",
"abc",
99.9,
{2020,02,29},
"出版社"
};
int main(void)
{
printf("书名:%s\n", book.title);
printf("作者:%s\n", book.author);
printf("售价:%f\n", book.price);
//注意这里的输出方式:三个数据%d%d%d中间的-也会打印,每个数据寻找到最底层,book.date.year
printf("出版日期:%d-%d-%d\n", book.date.year, book.date.month, book.date.day);
printf("出版社:%s\n", book.publisher);
return 0;
}
结构体数组:
同定义结构体的形式。
仅仅把定义时的数组名换为数组名&