📜  C-数组(1)

📅  最后修改于: 2023-12-03 14:40:00.483000             🧑  作者: Mango

C数组

C数组是C语言中最重要的数据结构之一,它是一组用于存储相同类型数据元素的连续内存空间。在C语言中,数组是以连续的内存空间存储数据,它可以通过下标取得数据。

创建数组

在C语言中,可以使用以下方式来创建数组:

//方式1:先声明数组类型,再定义数组变量
int arr[10];

//方式2:先定义数组变量,再为其指定数据类型和元素个数
int arr[] = {1, 2, 3, 4, 5};

其中,方式1比较常用,它声明了一个长度为10的整型数组arr。方式2则定义了一个长度为5的整型数组arr,并初始化了数组元素。

在C语言中,数组的下标从0开始,因此可以通过数组下标访问数组元素,如下所示:

int a[10];
a[0] = 1;
a[1] = 2;
处理数组

在C语言中,可以使用以下方式来处理数组:

遍历数组

遍历数组,即访问数组中的每一个元素。可以使用for循环来遍历数组,如下所示:

int a[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
    printf("%d ", a[i]);
}
计算数组长度

要计算数组的长度,可以使用sizeof运算符,如下所示:

int a[5];
int len = sizeof(a) / sizeof(a[0]);
排序数组

要对数组排序,可以使用快速排序、冒泡排序等算法,如下所示:

//快速排序
void quick_sort(int arr[], int left, int right) {
    if (left >= right) {
        return;
    }
    int i = left;
    int j = right;
    int pivot = arr[left];
    while (i < j) {
        while (i < j && arr[j] > pivot) {
            j--;
        }
        arr[i] = arr[j];
        while (i < j && arr[i] < pivot) {
            i++;
        }
        arr[j] = arr[i];
    }
    arr[i] = pivot;
    quick_sort(arr, left, i - 1);
    quick_sort(arr, i + 1, right);
}

//冒泡排序
void bubble_sort(int arr[], int len) {
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j < len - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}
复制数组

要复制数组,可以使用memcpy函数,如下所示:

int a[5] = {1, 2, 3, 4, 5};
int b[5];
memcpy(b, a, 5 * sizeof(int));
总结

C数组是一种非常常见的数据结构,它可以存储相同类型的数据,提供了许多有用的功能,诸如遍历数组、计算数组长度、排序数组等。使用C数组,可以轻松地处理大量的数据,保证程序的高效性和可读性。