1. 一维数组初始化
一维数组是一系列具有相同类型的数据(元素)的集合。数组中每个元素都可以通过索引访问,索引表示元素在数组中的位置。
1.1 采用大括号初始化
在大括号中,将数组的每个元素初始化为一个给定的值,用逗号隔开。
int arr[4] = {1, 2, 3, 4};
上述代码将创建一个有4个元素的数组,分别初始化为1、2、3和4。
1.2 自动类型推导
C++11允许我们使用auto关键字对数组进行自动类型推导。
auto arr = new int[4] {1, 2, 3, 4};
上述代码将创建一个有4个元素的数组,并将它初始化为1、2、3和4。
1.3 快速初始化
C++11允许我们使用初始化列表来快速初始化数组。
int arr[] {1, 2, 3, 4};
上述代码将创建一个有4个元素的数组,并将它初始化为1、2、3和4。
2. 二维数组初始化
二维数组是一种表格状的数据结构,有行和列组成,每个元素都可以由其行和列的位置来访问。
2.1 采用大括号初始化
在大括号中,将二维数组的每个元素初始化为一个给定的值,用逗号隔开,同时要按照行的顺序进行初始化。
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
上述代码将创建一个2行3列的数组,并将它初始化为:
1 | 2 | 3 |
4 | 5 | 6 |
2.2 自动类型推导
C++11允许我们使用auto关键字对二维数组进行自动类型推导。
auto arr = new int[2][3] {{1, 2, 3}, {4, 5, 6}};
上述代码将创建一个2行3列的数组,并将它初始化为:
1 | 2 | 3 |
4 | 5 | 6 |
3. 动态数组初始化
动态数组的大小在运行时确定,可以使用new运算符来创建动态数组。
3.1 采用大括号初始化
在大括号中,将数组的每个元素初始化为一个给定的值,用逗号隔开。
int n = 4;
int* arr = new int[n] {1, 2, 3, 4};
上述代码将创建一个有4个元素的数组,并将它初始化为1、2、3和4。
3.2 自动类型推导
C++11允许我们使用auto关键字对动态数组进行自动类型推导。
int n = 4;
auto arr = new int[n] {1, 2, 3, 4};
上述代码将创建一个有4个元素的数组,并将它初始化为1、2、3和4。
3.3 快速初始化
C++11允许我们使用初始化列表来快速初始化动态数组。
int n = 4;
auto arr = new int[n] {1, 2, 3, 4};
上述代码将创建一个有4个元素的数组,并将它初始化为1、2、3和4。
4. 字符串数组初始化
在C++中,字符串是以字符数组的形式存储的。字符串数组是一个数组,其中的每个元素都是一个字符串。字符串数组的初始化可以采用以下方式:
4.1 采用大括号初始化
char str[][6] = {"hello", "world", "!"};
上述代码将创建一个3个元素的字符数组,其中每个元素都是一个字符串。
4.2 自动类型推导
auto str = new char[3][6] {"hello", "world", "!"};
上述代码将创建一个3个元素的字符数组,其中每个元素都是一个字符串。
4.3 快速初始化
char str[][6] = {"hello", "world", "!"};
上述代码将创建一个3个元素的字符数组,其中每个元素都是一个字符串。
5. 实例
以下是一个使用快速初始化的例子:
#include <iostream>
using namespace std;
int main() {
int arr[][3] {{1, 2, 3}, {4, 5, 6}};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
输出:
1 2 3
4 5 6
6. 总结
本文介绍了C++中数组的初始化方法,包括一维数组、二维数组、动态数组和字符串数组的初始化。通过本文的介绍,我们可以看到不同的初始化方法适用不同的数组类型和场景。在实际编程中,我们可以根据具体情况选择不同的初始化方法,提高程序的效率和可读性。