结构体也是一种数据类型 (这种数据类型里面可以定义不同的数据类型的数据,是一种用户自定义的数据类型)
当然结构体里面可以嵌套数组和结构体
结构体的定义
struct 结构体名
{
成员变量的数据类型1 成员变量名1;
成员变量的数据类型2 成员变量名2;
.......
};
//注意 结构体的命名用驼峰法 每一个成员变量后面要加上; 在最后的{}后面要加上;
结构体变量的定义
struct 结构体名 结构体变量名 = {值1, 值2, 值3, 值4};
结构体的使用:使用点语法来访问成员变量 结构体变量名 . 成员变量名;
结构体可以直接赋值 数组不能直接赋值
类型重命名
typedef 原类型名 新类型名;
注意:新类型名使用的命名规范为大驼峰法
typedef struct student Student;
struct abc {
char a;
char d;
short b;
int c;
};
//结构体的内存是最大成员变量数据类型所占的字节数的倍数
//结构体成员变量的顺序, 会影响到结构体所占的字节数
//合理的排布成员变量的顺序, 能够减少内存碎片, 降低结构体所占的字节数
//把short b放到第二个位置的话, 所占字节数则是12, 以前两个所占字节平分单元