1.结构体的定义
结构体是描述一类事物相关属性的集合,是一种自定义的数据类型
struct 结构体名
{
属性1;
属性2;
};
一个简单的例子
//描述一个学生的姓名,年龄,数学成绩
struct student
{
char name[20];
int age;
};
//定义了一个数据类型为struct student的结构体
2.结构体的初始化
类似于之前定义的初始化
数据类型 变量名;
eg:
int a=0;
结构体的初始化:
struct 结构体名 结构体变量 ={……}
struct student stu ={"zhangsan",18};
3.结构体的访问
方法1:变量名.成员
#include<stdio.h>
//定义结构体
struct student
{
char name[30];
int age;
};
//typedef 数据类型 名字 :给数据类型换个名字
//如 typedef int uu; 表示:int a; <==> uu a;
typedef struct student stu;
int main()
{
printf("%s",stu.name);
printf("%d",stu.age);
return 0;
}
方法2:指针变量->成员
4. 字节对齐
一次性分配多少个字节
自然对齐方式(32OS):
char:1字节对齐
short:2字节对齐
int:4字节对齐
float:4字节对齐
double:4字节对齐,分配的时候分配两次就可以了
字节对齐:选成员中最大的那个对齐
节省结构体空间的办法:
总结:(1)将数据类型最大的放在最前面
(2)位域/位段
注意:位域不能使用标准输入进行输入
5. 给结构体取别名
方法1:
方法2:
结构体之间相互赋值: