5-6 构造数据类型

  • 共用体
    • 共用体定义
      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;
  • 内存管理
    • malloc
      void *malloc(size_t size);​
      • 功能
        申请堆区空间
      • 参数
        size:申请堆区空间的大小
      • 返回值
        成功返回堆区空间首地址
        失败返回NULL
    • free
      void free(void *ptr);
      • 功能
        释放堆区空间
      • 参数
        ptr:堆区空间首地址
      • 返回值
        缺省
    • 内存溢出
      也称为内存越界,操作超过变量范围的空间数据
    • 内存泄露
      malloc申请的空间没有使用free释放
    • 内存碎片
      由于频繁malloc和free小空间,导致大的连续空间由于中间存在小空间被占用而无法 得到申请空间的现象
  • 链表
    • 数组与链表的区别
      • 数组
        • 1. 空间连续(访问数据方便,空间必须连续)
        • 2. 数组元素必须有限
        • 3. 数组插入、删除元素效率低
      • 链表
        • 1. 空间不需要连续(访问数据麻烦、空间不需要连续,可以使用小的分散空间)
        • 2. 链表元素可以没有上限
        • 3. 链表插入、删除元素效率高
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值