C++ -二維陣列圖解說明 (Two dimensional (2D) array in C++)
你會不會也常常搞不清楚二維陣列的索引值和儲存位置呢?快把這張圖存起來吧!
1. 基本的二維陣列
#include <iostream>
using namespace std;
int main()
{
int A[2][3] =
{
{0, 1, 2},
{3, 4, 5}
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
system("pause");
return 0;
}
0 1 2 3 4 5 |
2. 二維陣列在記憶體中的實際存法
3. 取某一列
#include <iostream>
using namespace std;
void PrintRow(int *pRow, int nNum);
int main()
{
int A[2][3] =
{
{0, 1, 2},
{3, 4, 5}
};
//取一整列的方法
int* P[2];
for (int i = 0; i < 2; i++)
{
P[i] = A[i];
PrintRow(P[i], 3);
cout << endl;
}
system("pause");
return 0;
}
void PrintRow(int* pRow, int nNum)
{
for (int j = 0; j < nNum; j++)
cout << pRow[j] << " ";
}
0 1 2 3 4 5 |
4. 動態宣告二維陣列
#include <iostream>
using namespace std;
int main()
{
int row = 2;
int col = 3;
//宣告
int** A;
A = new int* [row];
for (int i = 0; i < row; i++)
A[i] = new int[col];
//給值
int n = 0;
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
A[i][j] = n;
n++;
}
}
//印出
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
//delete
for (int i = 0; i < row; i++)
delete[] A[i];
delete[] A;
system("pause");
return 0;
}
0 1 2 3 4 5 |
傳遞二維陣列給函式的方法
https://husking-studio.com/cpp-pass-2d-array-as-function-parameter/