构造数据类型:
数据类型:1.基本数据类型
2.构造数据类型
1.结构体
struct
1.1结构体类型的定义
struct 类型名
{
数据类型1 成员变量1;
数据类型2 成员变量2;
数据类型3 成员变量3;
...
};
结构体中的数据类型可以是:
1.基本数据类型 short int long float double
2.数组 int a[5]; int a[2][3];
3.构造的数据类型 struct date d; struct time t;
1.2 结构体变量的定义
数据类型 变量名;
struct datetime dt;
1.3 结构体元素的访问
. 结构体变量类型访问成员变量使用.
-> 结构体指针类型访问成员变量使用->
最终类型是由成员变量的类型决定
1.4 结构体的初始化
1.全部初始化
struct student s = {"zhangsan", 'm', 18, 100};
2.局部初始化
struct student s = {
.name = "zhangsan",
.age = 19,
};
3.对结构体清0的方法:(需要加<string.h>头文件)
memset(&s, 0, sizeof(s)); //建议使用memset,因为bzero不是c标准库的一部分。
bzero(&s, sizeof(s));
1.5 结构体的存储:
内存对齐:
1.结构体成员变量只能存放在内存地址为自身基本类型长度整数倍的内存单元中
2.结构体大小必须为最大成员变量类型的整数倍(成员变量类型包含double型时,仍按4字节对齐存储)
1.6 结构体作为函数参数
1.7 结构体数组