定义
在我们处理数据的时候,我们有时候发现需要处理不同的数据类型,想将他们组合表达,这时候就出现了结构体
结构体的定义
有名结构体
struct studengt
{
int age;
char name[32];
};
有名结构体可以在结构体外定义,而无名结构体不行
无名结构体
struct
{
int age;
char name[32];
}var;
无名结构体只能在结构体中定义,其实var为全局变量,不能再修改
结构体的初始化
其中只有有名结构体才能才main函数中初始化,无名结构体只能在结构体中,以上面的为例
struct student stu={0}
其中就是定义了stu变量,并将stu初始化
其中还分为全部初始化和部分初始化,全部初始化就是将其中的变量分别定义,部分初始化就是将其中的变量部分定义
结构体的引用
直接引用
直接定义变量struct student var;
var.age;
同样也可以定义指针型变量 struct student *var
var->age;
也可以定义结构体数组 struct student var[20]
var[10].age;
结构体的大小
由于在硬件方面需要内存对齐,所有结构体变量的首地址能够被其最宽基本类型成员的大小所整除,如果不行的话就需要补齐然后再进行填入