链表和共用体、位运算

一、尾插

2.头删

3.尾删

二、共用体(union  会共同占用相同的内存空间)

  1. 内存大小:共用体的大小是其最大成员的大小。可以使用 sizeof 来获取共用体的大小。

    printf("Size of union: %zu\n", sizeof(data)); // 输出 20(对于这个例子,如果 str 是最大) 
  2. 有效成员:在任何时候,只有最后写入的成员是有效的。因此,读取其他成员时应该小心,以免得到未定义行为。

  3. 初始化:共用体可以在声明时初始化。

    union Data data = { .i = 10 }; // 初始化整数成员

  4. 嵌套共用体:共用体可以嵌套在结构体中,或在其他共用体内部。

三、枚举类型(enum)

用于定义一组命名整型常量。枚举使得代码更具可读性和可维护性,通常用于表示一组相关的状态或选项。

四、typedef(给已有的数据类型起个别名)

typedef 是 一个关键字,用于给已有类型定义一个新的别名;

五、位运算(操作数为整形和与整形相兼容的类型)

1. 位与运算(指定位清零)

  • 操作符&
  • 描述:两个位同时为1时,结果为1,否则为0。

  int a = 5; // 0101 int b = 3; // 0011 int result = a & b; // result = 1 (0001)

2. 位或运算(指定位置一)

  • 操作符|
  • 描述:两个位有一个为1时,结果为1;只有两个位都为0时,结果为0。

  int a = 5; // 0101 int b = 3; // 0011 int result = a | b; // result = 7 (0111)

3. 位异或运算

  • 操作符^
  • 描述:两个位不同则结果为1,相同则结果为0。

  int a = 5; // 0101 int b = 3; // 0011 int result = a ^ b; // result = 6 (0110)

4. 位非运算

  • 操作符~
  • 描述:对每一位进行取反操作。

  int a = 5; // 0101 int result = ~a; // result = -6 (在32位系统中结果为 1111...1010)

5. 左移运算

  • 操作符<<
  • 描述:将位向左移动,低位补零,相当于乘以2的幂。

  int a = 5; // 0101 int result = a << 1; // result = 10 (1010)

6. 右移运算

  • 操作符>>
  • 描述:将位向右移动,高位根据符号扩展(对于负数,补1;对于正数,补0)。

  int a = 5; // 0101 int result = a >> 1; // result = 2 (0010)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值