1.结构体类型(struct)
1)为声明类型,在全局区域起作用
2)花括号末尾的分号不能省
3)“struct Student” 表示类型名, “s” 表示变量名
4)调用方法: “赋值形式”
“初始化形式”
部分赋值:
成员初始化之间用逗号隔开, 其余部分补零
5)打印方法:
6)结合体所占字节:
(1)结构体对齐问题,提高cpu的运行速率,同时占用4个字节
7)1、结构体按照其最长成员大小对齐,意味着最终的大小必须是最长成员大小的整数倍;
2、结构体成员按照结构体成员声明先后次序依次存放,并且每个成员的首字节放置的位置必须 能够整除成员的字节数;
3、如果结构体某个成员的字节数大于CPU的字节数,则最长按照CPU的字节数对齐;
4、用预处理命令#pragma pack(n) 可以强制编译器按照指定的n来对齐,合法的n的数值分别是1、2、4、8、16。
5.若结构体内为数组,则按数组内元素对齐
6.结构体作为函数传递时,统一用指针传参。
7.根据实参的类型,选择是否使用(指针时使用)指向运算符。
8.结构体变量可以整体赋值
8)缓冲区
强制刷新缓冲区fflush
用于直接输出缓冲区里的内容
2.链表(是一种数据结构)
1)节点(NODE)
2)删除插入的算法复杂度为1;
3)链表当中地址不连续
4)链表的表现形式
(1)无头链表,通常需要用到指针的指针
头差