2026/8/6 1:38:53
网站建设
项目流程
共用体(联合体)
- 结构体:每个成员拥有独立内存空间
- 共用体:所有成员共用同一块内存空间,同一时刻只能使用其中一个成员
大小端
- 小端:低地址存低位数据,高地址存高位数据(x86、Ubuntu默认)
- 大端:低地址存高位数据,高地址存低位数据(网络字节序)
枚举
- 枚举常量本质是 int 类型
- 第一个枚举值默认等于0,后面依次自增1
位运算
位运算符
符号 作用
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 左移
右移
常用位运算模板
- 将第n位置1
num |= (1 << n); - 将第n位置0
num &= ~(1 << n); - 异或交换两个变量(不使用临时变量)
a = a ^ b;
b = a ^ b;
a = a ^ b;
C程序内存分区
- 文本段(.text):存放代码、函数指令,只读
- 只读数据段(.rodata):字符串常量
- 数据段(.data):已经初始化的全局变量、静态变量
- BSS段(.bss):未初始化全局/静态变量,程序运行前自动清零
- 栈区(stack):局部变量,函数自动申请释放,生命周期随函数
- 堆区(heap):程序员手动管理
- malloc 申请内存
- free 释放内存
- 忘记free会造成内存泄漏
堆区使用规则
- 堆内存需要手动申请、手动释放
- 使用完毕必须调用 free 归还空间
- 不释放会产生内存泄漏,程序长期运行会占用越来越多系统内存