结构体与共用体

avatar
作者
筋斗云
阅读量:0

一、链表

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!