一、多維數組概述
在C++中,多維數組是由多個一維數組組合而成的數組。簡單來說,多維數組就是一個表格,每個元素都有“行”和“列”兩個維度。
多維數組的定義格式為:數據類型 數組名[維度1長度][維度2長度]…[維度n長度];
int arr[3][4]; // 定義一個3行4列的二維數組
int arr2[2][3][4]; // 定義一個2頁3行4列的三維數組
二、二維數組的定義和使用
二維數組是最常見的多維數組,它是由若干個一維數組組合而成的,每一個一維數組又具有相同的長度,它在內存中的存儲方式是按照行優先的方式存儲的。
在C++中定義一個二維數組,我們需要用到兩對方括號來表示它的行和列。
二維數組的定義格式為:數據類型 數組名[行數][列數];
#include <iostream>
using namespace std;
int main() {
int a[3][4]; // 定義一個3行4列的二維數組
// 通過循環賦值
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = (i + 1) * (j + 1);
}
}
// 輸出數組
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << "\t";
}
cout << endl;
}
return 0;
}
上面的代碼中,我們定義了一個3行4列的二維數組,然後通過循環來給數組中的每個元素賦值。最後再通過循環輸出數組。
三、二維數組作為形參傳遞
在C++中,二維數組可以作為函數的參數進行傳遞。如果要將二維數組作為形參傳遞,需要顯式聲明每個維度的長度。在函數內部,可以通過二維數組名和下標來操作數組元素。
#include <iostream>
using namespace std;
void printArr(int a[][4], int row) { // 二維數組作為形參傳遞
for (int i = 0; i < row; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << "\t";
}
cout << endl;
}
}
int main() {
int a[3][4]; // 定義一個3行4列的二維數組
// 通過循環賦值
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = (i + 1) * (j + 1);
}
}
// 作為參數傳遞
printArr(a, 3);
return 0;
}
上面的代碼中,我們定義了一個3行4列的二維數組,然後通過循環來給數組中的每個元素賦值。在主函數中,我們調用了一個名為printArr的函數,並將數組a和行數3作為參數傳遞給這個函數。printArr中也是通過循環輸出二維數組。
四、多維數組的定義和使用
在C++中,除了二維數組,還有更高維度的多維數組。它們的定義和使用原則與二維數組基本相同。
對於一個多維數組,我們需要指定它的每一個維度的長度,如:int a[2][3][4],其中,a是一個三維數組,第一維長度為2,第二維長度為3,第三維長度為4。
下面是一個三維數組的示例代碼:
int b[2][3][4];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
b[i][j][k] = i + j + k;
}
}
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int k = 0; k < 4; k++) {
cout << b[i][j][k] << "\t";
}
cout << endl;
}
cout << endl;
}
上面的代碼中,我們定義了一個3維數組b,它的第一維長度為2,第二維長度為3,第三維長度為4。然後通過循環給b中的每個元素賦值,最後再通過循環輸出b中的每個元素。
五、總結
本文介紹了C++中多維數組的定義和使用,包括二維數組、多維數組的定義、作為形參傳遞、以及多維數組的賦值和輸出等操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/284646.html