2차원 배열의 선언은 다음과 같다.
int arr1[3][4];
이는 3행 4열을 가진 이차원 배열 arr1을 의미하며 그림으로 표현하면 다음과 같다.
[0][0] | [0][1] | [0][2] | [0][3] |
[1][0] | [1][1] | [1][2] | [1][3] |
[2][0] | [2][1] | [2][2] | [2][3] |
그렇다면 이 배열의 sizeof 연산을 한 결과를 예시를 통해 확인해보자.
<소스코드>
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>
int main(void) {
int arr1[3][4];
printf("3행 4열인 배열 arr1의 크기는 %d 입니다.\n", sizeof(arr1));
return 0;
}
|
cs |
<실행결과>
위의 표를 보면 3행 4열 이므로 총 12칸이 존재하고 int 형 배열이므로 12 x 4이므로 48바이트 인 것을 확인할 수 있다.
이차원 배열은 다음의 형태로 선언과 동시에 초기화할 수 있는데 총 3가지의 형태가 존재한다. 이를 예시를 통해 확인해보자.
<소스코드>
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
|
#include <stdio.h>
int main(void) {
int arr1[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int arr2[3][3] = {
{1},
{4, 5},
{7, 8, 9}
};
int arr3[3][3] = { 1, 2, 3, 4, 5, 6, 7 };
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr1[i][j]);
}
printf("\n");
}
printf("\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr2[i][j]);
}
printf("\n");
}
printf("\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr3[i][j]);
}
printf("\n");
}
}
|
cs |
<실행결과>
3차원 배열도 위의 2차원 배열과 비슷하므로 이 포스팅에서는 생략 하겠다.
'C' 카테고리의 다른 글
8. 2차원 배열과 포인터 (0) | 2021.06.26 |
---|---|
7. 이중 포인터 (0) | 2021.06.25 |
5. 포인터와 함수 (0) | 2021.06.25 |
4. 포인터와 배열 (0) | 2021.06.22 |
3. 포인터 (0) | 2021.06.21 |