C++ -二維陣列圖解說明

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/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *