1.结构的定义
在实际情况中,数据经常以成组的形式存在。如果这些值的类型各不相同,他们无法同时存储于同一个数组中,在C中,可以使用结构把不同类型的值存储在一起,所以结构也是一些值的集合,这些值称为它的成员,但是这些成员的类型可以不同。
拓展:
“结构”是一种构造数据类型,也叫做用户自定义数据类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构即是一种“构造”而成的数据类型, 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。
2.结构的初始化
结构的初始化和数组相似,位于一对花括号内,由逗号分隔初始值,可用于结构各个成员的初始化。这些值将根据结构成员的顺序写出,如果初始值不够,剩余的结构成员将使用缺省值进行初始化。
struct S
{
int a;
int b[10];
char c[20];
}s={
10,
{1,2,3,4,5},
"abc"
};
typedef:在C中,定义一个结构体类型如果要用typedef:
typedef struct Student
{
int a;
}Stu;
当需要声明变量时,就可以直接Stu.stu1;如果没有typedef则需用 struct Student stu1 来声明;(Stu==struct Student);
4.结构体的内存存储
结构在内存中的存储是按照成员列表顺序一个接一个的给每个成员分配内存。而在分配的时候则遵循结构体内存对齐规则:










