一、数组的基本概念
在 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++ 中数组的基本使用方法,包括声明、初始化、访问、遍历以及作为函数参数等操作。