c언어 기초

c언어 다차원배열 multidimensional array - 나도코딩

preferrrr 2022. 5. 31. 20:08

유튜브 나도코딩 c언어 기초 강의 내용입니다.

 

지난번에도 배열을 배웠었는데 그 배열은 1차원 배열이다. 이번 글은 다차원배열에 대한 글이다.

배열은 같은 형태의 데이터를 반복해서 처리할 때 쉽고 빠르게 하기 위해서 메모리에 연속적으로 저장공간을 만드는 것인데, 다차원배열 또한 크게 다르지 않다.

 

int main(void)
{
	int arr[5];
    
    int arr2[2][5];
    
    int arr3[4][2];
    
    int arr4[3][3][3];
	
    return 0;
}

int arr[5];

□□□□□ 이렇게 연속으로 공간이 5개 생김

 

int arr2[2][5];

□□□□□      arr2[0][0]  arr2[0][1]  arr2[0][2]  arr2[0][3]  arr2[0][4] 

□□□□□      arr2[1][0]  arr2[1][1]  arr2[1][2]  arr2[1][3]  arr2[1][4]

이렇게 공간이 생기고, 행렬과 같이 int arr2[행의 갯수][열의 갯수] 라고 생각 할 수 있다.

 

int arr3[4][2];

□□      arr3[0][0]  arr3[0][1]

□□      arr3[1][0]  arr3[1][1]

□□      arr3[2][0]  arr3[2][1]

□□      arr3[3][0]  arr3[3][1]

 

int arr4[3][3][3];

□□□    □□□   □□□      

□□□    □□□   □□□     

□□□    □□□   □□□      

  arr4[0][0][0] arr4[0][0][1] arr4[0][0][2]    arr4[1][0][0] arr4[1][0][1] arr4[1][0][2]    arr4[2][0][0] arr4[2][0][1] arr4[2][0][2]

  arr4[0][1][0] arr4[0][1][1] arr4[0][1][2]    arr4[1][1][0] arr4[1][1][1] arr4[1][1][2]    arr4[2][1][0] arr4[2][1][1] arr4[2][1][2]

  arr4[0][2][0] arr4[0][2][1] arr4[0][2][2]    arr4[1][2][0] arr4[1][2][1] arr4[1][2][2]    arr4[2][2][0] arr4[2][2][1] arr4[2][2][2]

 

이렇게 [3][3]이 3개 생긴다.

 

#include <stdio.h>

int main(void)	
{    
    int arr[5] = { 1, 2, 3, 4, 5 };

	int arr2[2][5] = {
		{ 1,2,3,4,5 },
		{ 1,2,3,4,5 }
	};

	int arr3[4][2] = { 
		{1,2},
		{1,2},
		{1,2},
		{1,2}
	};

	int arr4[3][3][3] = {
		{
			{ 1,2,3 }, 
			{ 4,5,6 }, 
			{ 7,8,9 } 
		},
		{ 
			{ 11,12,13 },
			{ 14,15,16 },
			{ 17,18,19 }
		},
		{ 
			{ 21,22,23 },
			{ 24,25,26 },
			{ 27,28,29 }
		}
	};

	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			for (int k = 0; k < 3; k++)
			{
				printf("3차원 배열 (%d, %d, %d) 의 값 : %d\n", i, j, k, arr4[i][j][k]);

			}
			printf("\n");
		}

	}


	return 0;
}

 

 

 

 

위 예제 코드를 통해 배열이 이런식으로 저장된다는 것을 알 수 있다.