小甲鱼 P42 结构体
结构体声明:
struct 结构体名称
{
结构体成员1;
结构体成员2;
... ...
};
struct Book
{
char title[128];
char author[40];
float price;
unsigned int date;
char publisher[40];
};
定义结构体类型变量(才会分配内存)
struct 结构体名称 结构体变量名
访问结构体变量
要访问结构体变量,点号(.)运算法,
#include <stdio.h>
struct Book//Book结构体名
{
char title[128];
char author[40];
float price;
unsigned int date;
char publisher[40];
}book;//book 结构体变量
int main()
{
//struct Book book;
printf("请输入书名:");
scanf("%s", book.title);
printf("请输入作者:");
scanf("%s", book.author);
printf("请输入售价:");
scanf("%f", &book.price);
printf("请输入出版日期:");
scanf("%d", &book.date);
printf("请输入出版社:");
scanf("%s", book.publisher);
printf("\n=====数据录入完毕=====\n");
printf("书名:%s\n", book.title);
printf("作者:%s\n", book.author);
printf("售价:%.2f\n", book.price);
printf("出版日期:%d\n", book.date);
printf("出版社:%s\n", book.publisher);
return 0;
}
初始化结构体变量
初始化结构体的指定成员值
内存对齐:(可以看一下《失传的C结构体打包技艺》)
#include <stdio.h>
int main(void)
{
struct A
{
char a;
int b;
char c;
} a = {'x', 520, 'o'};
printf("sizeof a = %d\n", sizeof(a));//12
return 0;
}
结果为:12