结构:
结构是由程序员自己设计的一种数据类型,用于描述一个事物的各项数据,由若干个不同的基础数据类型组成。
设计结构:
struct 结构体名
{
类型 成员名;
...
};
注意:一般结构体名首字母大写
定义结构变量:
struct 结构体名 变量名;
注意:定义结构变量时,struct不能省略
定义初始化结构变量:
struct 结构体名 变量名 = {v1,v2,v3...};
根据成员的顺序进行初始化
struct 结构体名 变量名 = {.成员名=v2,.成员名=v3...};
只初始化某些成员
注意:同类型的结构变量之间可以直接赋值
访问成员:
变量名.成员名;
结构指针->成员名
练习1:
设计一个老师结构体类型,成员有:姓名、性别、工号、工龄,定义一个老师结构变量,使用scanf来输入成员的数值,并显示。
结构体变量作为形参时:
由于结构变量的字节数都比较大,值传递的效率比较低,因此都传递结构变量的地址,如果不需要修改结构变量的值,可以使用const保护
结构指针->成员名;
typedef 重定义结构类型:
typedef struct 结构名 结构名;
之后就可以不用加struct关键字了
typedef struct 结构体名
{
...
}结构体名;
注意:一般结构体变量存储在堆内存
如果计算结构体的字节数:
结构体成员的顺序会影响它的总字节数大小,在设计结构体时,如果顺序合理那么可以大大节约内存。
内存对齐:
假设第一个成员从零地址