- 共用体
- 共用体定义
union 共用体名 {
数据类型1 成员变量1;
数据类型2 成员变量2;
数据类型3 成员变量3;
..
};- 与结构体区别
- 1. 结构体每个成员变量空间独立
- 2. 共用体每个成员变量空间共享
- 与结构体区别
- 共用体定义
- 内存大小端
- 内存大端
内存低地址存放高数据位
- 内存小端
内存低地址存放低数据位
- 判断方法
可用包含int和char的共用体通过判断字符处于高或低地址判断系统处于大端还是小端
- 内存大端
- 枚举类型
enum 枚举类型名
{
枚举常量1,
枚举常量2,
枚举常量3,
..
};- 注意
- 枚举变量的值在枚举常量中选择其一作为它的值
- 枚举常量默认为int类型,第一个枚举常量的值默认为0,后续枚举常量的值为前一个枚举常量的值+1 ,也可主动为某个枚举常量赋值,下一个即+1
- 注意
- 位运算
- 按位与:&
与 0 得 0
- 按位或:|
或 1 置 1
- 按位异或:^
相同为 0 ,相异为 1
- 按位取反:~
- 右移:>>
右移 n 位等于缩小, 数据 / 2^n(二进制退位)
- 左移:<<
左移 n 位等于放大,数据 * 2^n(二进制进位)
- 常用操作
- 将字节中的第n位置1
num = num | (1 << n);
- 将字节中的第n位置0
num = num & ~(1 << n);
- 不用中间变量来实现两个变量值的交换
a = a ^ b;
b = a ^ b;
a = a ^ b;
- 将字节中的第n位置1
- 按位与:&
- 内存管理
- malloc
void *malloc(size_t size);- 功能
申请堆区空间
- 参数
size:申请堆区空间的大小
- 返回值
成功返回堆区空间首地址
失败返回NULL
- 功能
- free
void free(void *ptr);- 功能
释放堆区空间
- 参数
ptr:堆区空间首地址
- 返回值
缺省
- 功能
- 内存溢出
也称为内存越界,操作超过变量范围的空间数据
- 内存泄露
malloc申请的空间没有使用free释放
- 内存碎片
由于频繁malloc和free小空间,导致大的连续空间由于中间存在小空间被占用而无法 得到申请空间的现象
- malloc
- 链表
- 数组与链表的区别
- 数组
- 1. 空间连续(访问数据方便,空间必须连续)
- 2. 数组元素必须有限
- 3. 数组插入、删除元素效率低
- 链表
- 1. 空间不需要连续(访问数据麻烦、空间不需要连续,可以使用小的分散空间)
- 2. 链表元素可以没有上限
- 3. 链表插入、删除元素效率高
- 数组
- 数组与链表的区别
5-6 构造数据类型
最新推荐文章于 2024-09-14 18:46:05 发布