一、链表
1.尾插
2.头删:
3.尾删:
4.内存泄漏:malloc调用的节点需要手动清除
头删效率更高,算法复杂度更低
二、共用体
1.形式:union 共用体名{成员表列} 变量表列;共用体的成员会占用同样的内存空间
2.共用相同的内存空间(最大的),有效的为最后输入的字节
为了节省空间 共用体的覆盖总是向前顶,所以成员地址都相同
利用共用体,判断计算机的大小端
3.共用体的变量可以作为函数参数传递,通过指针传参
共用体也要遵循对齐原则
三、枚举类型
如果一个变量只有几种可能,则可以将其定义为一个枚举类型
前方加enum(成员的取值为可能的枚举型常量)
枚举的常量可以自己定义,其本质为int 型
四、typedef定义类型
INT生成类型名,作用为已有的数据类型起别名
五、位运算
1.位运算符除~外均为双目运算符,运算量 只能是整形或字符型数据
2.按位与&:指定位清零
2.按位或:指定位置1,其他位置不变
3.按位异或:指定位翻转(相同为0,不同为1)(连续两次异或同一个数,还是数本身)
4.逻辑左移:抛掉最高位,低位补0
5.算数右移:有符号类型,最后一位移出去后,前面有可能补0(i 为正数),也有可能补1(i 为负数)
6.逻辑右移:无符号类型,最后一位移出去后,前面补0
建议编写参与位运算的数据类型时,标明是否有符号,即加signed 或 unsigned