C语言数组

数组是C语言中一种重要的数据结构,用于存储相同类型的一组数据。数组在内存中是连续存储的,因此可以高效地进行索引访问。下面是C语言数组的详细介绍,包括定义、初始化、基本操作和多维数组。

1. 数组的定义

在C语言中,数组的定义形式为:

type arrayName[arraySize];
  • type:表示数组中元素的数据类型。

  • arrayName:数组的名称。

  • arraySize:数组的大小,即数组中元素的个数。

例如:

int numbers[5]; // 定义一个包含5个整数的数组

2. 数组的初始化

数组可以在定义时进行初始化:

int numbers[5] = {1, 2, 3, 4, 5}; // 定义并初始化一个包含5个整数的数组

如果初始化时没有显式指定所有元素,未指定的元素将被初始化为零:

int numbers[5] = {1, 2}; // 定义并初始化前两个元素,其余元素为0

也可以省略数组大小,由编译器自动计算:

int numbers[] = {1, 2, 3, 4, 5}; // 自动推断数组大小为5

3. 访问数组元素

数组元素通过下标(索引)访问,下标从0开始:

int numbers[5] = {1, 2, 3, 4, 5};
printf("%d\n", numbers[0]); // 输出第一个元素:1
numbers[1] = 10;            // 修改第二个元素为10

4. 遍历数组

可以使用循环遍历数组中的所有元素:

#include <stdio.h>
​
int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");
    return 0;
}

5. 多维数组

C语言支持多维数组,最常用的是二维数组。二维数组可以看作是数组的数组:

type arrayName[size1][size2];

例如,定义一个3x4的二维数组:

int matrix[3][4]; // 定义一个3行4列的二维数组

二维数组的初始化:

int matrix[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

可以用嵌套循环遍历二维数组:

#include <stdio.h>

int main() {
    int matrix[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
    return 0;
}

6. 常见操作

数组的拷贝

在C语言中,不能直接使用赋值运算符将一个数组赋值给另一个数组。需要使用循环逐元素拷贝:

#include <stdio.h>

int main() {
    int source[5] = {1, 2, 3, 4, 5};
    int destination[5];

    for (int i = 0; i < 5; i++) {
        destination[i] = source[i];
    }

    for (int i = 0; i < 5; i++) {
        printf("%d ", destination[i]);
    }
    printf("\n");
    return 0;
}
查找数组中的最大值
#include <stdio.h>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    int max = numbers[0];

    for (int i = 1; i < 5; i++) {
        if (numbers[i] > max) {
            max = numbers[i];
        }
    }

    printf("最大值是: %d\n", max);
    return 0;
}
数组元素的排序

下面是一个使用冒泡排序对数组进行排序的例子:

#include <stdio.h>

void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

int main() {
    int numbers[5] = {5, 3, 4, 1, 2};

    bubbleSort(numbers, 5);

    printf("排序后的数组: ");
    for (int i = 0; i < 5; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

7. 总结

数组是C语言中非常基础且重要的数据结构,用于存储和操作一组相同类型的数据。理解数组的定义、初始化、访问和遍历,以及常见的数组操作如排序和查找,将有助于有效地编写C语言程序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值