以下是一篇关于数组的笔记,包括数组的基本概念、数组的声明和初始化以及数组的基本操作。
一、数组的基本概念
数组是一种线性数据结构,用于存储相同类型的数据元素。数组中的每个元素通过索引(整数)访问,索引从0开始。在C语言中,数组属于聚合类型(Aggregate Type),它可以用于存储数据元素,并且可以进行一些操作,例如遍历、搜索和排序等。
二、数组的声明和初始化
1. 声明数组:`数据类型 数组名[数组长度];`
例如,声明一个int类型的数组:`int arr[5];`
2. 初始化数组:
- 初始化内部元素:`数据类型 数组名[数组长度] = {元素1, 元素2, ..., 元素n};`
例如,初始化一个int类型的数组:`int arr[5] = {1, 2, 3, 4, 5};`
- 动态初始化:使用malloc()函数分配内存,然后将数组元素逐个赋值。
例如,动态初始化一个int类型的数组:
```c
int length = 5;
int *arr = (int *)malloc(length * sizeof(int));
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
```
三、数组的基本操作
1. 访问数组元素:`数组名[索引]`
例如,访问int类型的数组中的第一个元素:`arr[0]`
2. 修改数组元素:`数组名[索引] = 新值`
例如,将int类型的数组中的第一个元素修改为10:`arr[0] = 10`
3. 计算数组长度:`sizeof(数组名) / sizeof(数据类型)`
例如,计算int类型的数组长度:`sizeof(arr) / sizeof(int)`
4. 遍历数组:通过循环遍历数组中的每个元素。
```c
for (int i = 0; i < 数组长度; i++) {
printf("%d ", arr[i]);
}
printf("\n");
```
5. 搜索数组:在数组中搜索指定元素,并返回其索引。
```c
int search(int* arr, int length, int target) {
for (int i = 0; i < length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1; // 未找到目标元素
}
```
6. 排序数组:对数组进行排序,例如使用快速排序、归并排序等算法。