1.共用体定义:
union 公用名 {
数据类型1 成员变量1;
数据类型2 成员变量2;
数据类型3 成员变量3;
..
};
注意:
1.结构体每个成员变量空间独立
2.共用体每个成员变量空间共享的
2.内存大小端
内存小端:内存低地址存放低数据位,内存高地址存放高数据位
内存大端:内存低地址存放高数据位,内存高地址存放低数据位
3.枚举类型:
enum 枚举类型名
{
枚举常量1,
枚举常量2,
枚举常量3,
..
};
注意:
1.枚举变量的值在枚举常量中选择其一作为它的值
2.枚举常量默认为int类型,第一个枚举常量的值默认为0,后续枚举常量的值为前一个枚举常量的值+1
2.位运算:
& 按位与
| 按位或
^ 按位异或 相同为0,相异为1
~ 按位取反
>> 右移 右移n位 = 缩小, 数据 / 2^n
<< 左移 左移n位 = 放大, 数据 * 2^n
与0得0
或1置1
将字节中第n位置1:
num = num | (1 << n);
将字节中第n位置0:
num = num & ~(1 << n);
不使用中间变量实现两个变量值的交换:
a = a ^ b;
b = a ^ b;
a = a ^ b;
=========================================================================
内存管理:
1.malloc
void *malloc(size_t size);
功能:
申请堆区空间
参数:
size:申请堆区空间的大小
返回值:
成功返回堆区空间首地址
失败返回NULL
2.free
void free(void *ptr);
功能:
释放堆区空间
参数:
ptr:堆区空间首地址
返回值:
缺省
内存溢出:也称为内存越界,操作超过变量范围的空间数据
内存泄露:malloc申请的空间没有使用free释放
内存碎片:由于频繁malloc和free小空间,导致大的连续空间由于中间存在小空间被
占用而无法得到申请空间的现象称为内存碎片
数组:
1.空间连续(访问数据方便、空间必须连续)
2.数组元素必须是有限
3.数组插入、删除元素效率低
链表:
1.空间不需要连续(访问数据麻烦、空间不需要连续,可以使用小的分散空间)
2.链表元素可以没有上限
3.链表插入、删除元素效率高
20240506(构造数据类型、位运算、内存管理、链表的相关学习)
最新推荐文章于 2024-07-13 20:38:58 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)