c언어 다차원배열 multidimensional array - 나도코딩
유튜브 나도코딩 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;
}
위 예제 코드를 통해 배열이 이런식으로 저장된다는 것을 알 수 있다.