文章目录
- 1. 数组的基本概念
- 2. C语言中的数组实现
- 2.1 静态数组
- 2.2 动态数组
- 3. 数组的核心操作
- 3.1 插入操作
- 3.2 删除操作
- 4. 高级数组应用
- 4.1 多维数组
- 4.2 稀疏数组
- 5. 性能分析与优化
- 6. 最佳实践
- 6.1 安全操作建议
- 6.2 调试技巧
- 7. 总结
1. 数组的基本概念
数组作为最基础的数据结构之一,具有以下核心特性:
- 线性表结构:元素按顺序排列
- 连续内存分配:元素存储在连续内存空间
- 随机访问:通过索引直接访问元素(时间复杂度O(1))
- 固定类型:所有元素类型相同
数学表达式表示为:
A = [a₀, a₁, a₂, …, aₙ₋₁],其中n为数组长度
2. C语言中的数组实现
2.1 静态数组
定义与声明:
// 声明整型数组(未初始化)
int arr[10]; // 声明并初始化
float temperatures[5] = {36.5, 37.0, 36.8};
内存布局:
| 元素0 | 元素1 | 元素2 | ... | 元素n-1 |
地址计算:
元素地址 = 基地址 + 索引 × sizeof(type)
边界检查:
C语言不提供内置的边界检查,需要开发者自行处理
2.2 动态数组
结构体定义:
typedef struct {int* data; // 数据存储指针size_t size; // 当前元素数量size_t capacity;// 总容量
} DynamicArray;
初始化函数:
DynamicArray* da_init(size_t initial_capacity) {DynamicArray* da = malloc(sizeof(DynamicArray));da