12. 다차원 배열

Yongs12 ㅣ 2023. 6. 2. 20:19

다차원 배열은 2차원 이상의 배열을 말하며 2차원 배열은 행과 열로 구성되어 있고
3차원 배열은 행, 열, 면으로 구성되어 있으나 메모리를 확인하면 연속적으로 이어져있다.

2차원 배열

// 선언
int matrix[3][4];

// 선언 및 초기화
int matrix[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
[3][4] = > 3 X 4 행렬
    1 ~ 4 열
1행 1  2  3  4
2행 5  6  7  8
3행 9 10 11 12
아래와 같이 인덱스로 접근이 가능하다.
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[0][2] = 3;
matrix[0][3] = 4;
matrix[1][0] = 5;
matrix[1][1] = 6;
matrix[1][2] = 7;
matrix[1][3] = 8;
matrix[2][0] = 9;
matrix[2][1] = 10;
matrix[2][2] = 11;
matrix[2][3] = 12;

논리적으로는 행렬이지만 메모리를 확인하면 연속적으로 이어져있다.



3차원 배열

// 선언
int cube[3][4][5];

// 선언 및 초기화
int cube[3][4][5] = {
    {
        {1, 2, 3, 4, 5},
        {6, 7, 8, 9, 10},
        {11, 12, 13, 14, 15},
        {16, 17, 18, 19, 20}
    },
    {
        {21, 22, 23, 24, 25},
        {26, 27, 28, 29, 30},
        {31, 32, 33, 34, 35},
        {36, 37, 38, 39, 40}
    },
    {
        {41, 42, 43, 44, 45},
        {46, 47, 48, 49, 50},
        {51, 52, 53, 54, 55},
        {56, 57, 58, 59, 60}
    }
};
가로 5 세로 4 높이 3 인 사각형 모양의 데이터 저장 공간

Layer 1:
1  2  3  4  5
6  7  8  9 10
11 12 13 14 15
16 17 18 19 20

Layer 2:
21 22 23 24 25
26 27 28 29 30
31 32 33 34 35
36 37 38 39 40

Layer 3:
41 42 43 44 45
46 47 48 49 50
51 52 53 54 55
56 57 58 59 60

3차원 배열또한 마찬가지로 메모리는 연속적으로 이어져있다.

 

'C, C++' 카테고리의 다른 글

14. 구조체  (0) 2023.06.04
13. 배열 포인터  (0) 2023.06.03
11. C언어 메모리 동적 할당  (0) 2023.06.01
10. void 포인터  (0) 2023.05.31
09. const 포인터  (0) 2023.05.31