Bootstrap

C++ 数组教程

一、数组的基本概念

在 C++ 中,数组是一种用于存储相同类型元素的固定大小的连续内存块。数组中的每个元素都可以通过索引来访问,索引从 0 开始。使用数组可以方便地存储和处理一组相关的数据。

二、一维数组

2.1 数组的声明和初始化

声明数组

声明一维数组的基本语法如下:

数据类型 数组名[数组大小];

例如,声明一个包含 5 个整数的数组:

int numbers[5];
初始化数组
  • 部分初始化:可以只初始化数组的一部分元素,未初始化的元素将被自动初始化为 0(对于数值类型)。
int numbers[5] = {1, 2};  // 前两个元素初始化为 1 和 2,后三个元素初始化为 0
  • 完全初始化:初始化所有元素。
  • 省略数组大小:如果在初始化时提供了所有元素的值,可以省略数组大小,编译器会自动计算数组的大小。
int numbers[] = {1, 2, 3, 4, 5};  // 数组大小为 5

2.2 访问数组元素

可以使用数组名和索引来访问数组中的元素,索引从 0 开始。例如:

#include <iostream>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    std::cout << "数组的第一个元素是: " << numbers[0] << std::endl;
    std::cout << "数组的第三个元素是: " << numbers[2] << std::endl;
    return 0;
}

2.3 修改数组元素

可以通过索引来修改数组中的元素。例如:

#include <iostream>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    numbers[2] = 10;  // 将数组的第三个元素修改为 10
    std::cout << "修改后数组的第三个元素是: " << numbers[2] << std::endl;
    return 0;
}

2.4 遍历数组

可以使用循环来遍历数组中的所有元素。例如,使用 for 循环遍历数组:

#include <iostream>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        std::cout << numbers[i] << " ";
    }
    std::cout << std::endl;
    return 0;
}

三、多维数组

3.1 二维数组

二维数组可以看作是一个表格,有行和列。声明和初始化二维数组的基本语法如下:

数据类型 数组名[行数][列数];

例如,声明一个 3 行 4 列的二维整数数组:

int matrix[3][4];
初始化二维数组
int matrix[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

3.2 访问二维数组元素

可以使用两个索引来访问二维数组中的元素,第一个索引表示行,第二个索引表示列。例如:

#include <iostream>

int main() {
    int matrix[3][4] = {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    };
    std::cout << "矩阵第一行第二列的元素是: " << matrix[0][1] << std::endl;
    return 0;
}

3.3 遍历二维数组

可以使用嵌套循环来遍历二维数组中的所有元素。例如:

#include <iostream>

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++) {
            std::cout << matrix[i][j] << " ";
        }
        std::cout << std::endl;
    }
    return 0;
}

四、数组作为函数参数

可以将数组作为参数传递给函数。在函数中,可以对数组进行操作。例如:

#include <iostream>

// 函数接受一个整数数组和数组的大小作为参数
void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
}

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

五、注意事项

  • 数组越界:访问数组时,要确保索引在合法范围内(0 到数组大小 - 1),否则会导致未定义行为。
  • 数组大小固定:数组的大小在声明时就已经确定,不能在运行时改变。如果需要动态调整大小,可以使用 std::vector

通过以上内容,你可以了解 C++ 中数组的基本使用方法,包括声明、初始化、访问、遍历以及作为函数参数等操作。

;