今天学习构造数据类型,构造数据类型就是自己构造一个数据类型,学习了如何定义一个结构体,如何进行传参,如何对一个结构体进行传参
1.定义结构体struct
struct 结构体名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; ... };2.初始化
struct student s = {"zhangsan", 'm', 18, 90}; struct student s2 = { .name = "zhangsan", .score = 60, };可对其进行局部初始化或者全部初始化,初始化要按照定义的结构体数据类型以及顺序来初始化
3.结构体成员变量的访问
结构体变量类型通过 . 访问成员变量
结构体指针类型通过 -> 访问成员变量
最终的类型都是由成员变量决定的
4.结构体的存储
1. 结构体的存储并不是按照里面的数据类型各自占用内存大小之和来决定的
而是与内存对齐有关系
2.结构体成员变量只能存放在内存地址为自身基本类型长度整数倍的内存单元中
3.结构体总大小必须为最大基本类型长度的整数倍
4.可以通过#pragma pack(对齐字节数) 来调整内存对齐的方式
结构体传参可以通过值传递,也可以通过指针传递,指针传递的好处是节省内存空间的开销