다차원 배열이란?
1차원 배열
int i;
int arr[5];
다차원 배열
- 1차원 배열에 배열을 하나 이상 추가한 2차원, 또는 그 이상의 배열을 의미
(이건 2차원 배열)
int arr2[2][5]
//형식 자료형 배열명[세로크기][가로크기];
- 2차원 배열은 크기를 뒤부터 읽어서 arr2[2][5]는 5개의 연속된 메모리 공간을 가진 1차원 배열이 2개 있다는 뜻
- 이 배열의 총 요소는 5 * 2 = 10개
(이건 3차원 배열)
int arr4[3][3][3];
// 총요소 3 * 3 * 3 = 27개
- 실무에서는 2,3차원배열까지 사용하고 그 이상은 잘 사용하지 않음.
다차원 배열 다루기
- 다차원 배열 초기화하기
//1차원 배열 초기화
int arr[5] = {1, 2, 3, 4, 5};
//2차원 배열 초기화
int arr2[2][5] = {
{1, 2, 3, 4, 5},
{1, 2, 3, 4, 5}
};
//3차원 배열 초기화
int arr3[3][3][3] = {
{
**{},
{},
{}**
},
{
**{},
{},
{}**
},
{
**{},
{},
{}**
}
}
// 크기를 명시하지 않고 다차원 배열 초기화 , 둘이 동일함
int arr[][2] = {1, 2, 3, 4, 5, 6};
int arr[][2] = {{1, 2}, {3, 4}, {5, 6}};
2. 다차원 배열의 요소에 접근하기
![]() |
![]() |
다차원 배열 사용하기
#include <stdio.h>
int main(void) {
int arr3[4][2] = {
{1,2},
{3,4},
{5,6},
{7,8}
};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
printf("2차원 배열 [%d] [%d]의 값: %d\\n", i, j, arr3[i][j]);
}
}
return 0;
}
//출력
2차원 배열 [0] [0]의 값: 1
2차원 배열 [0] [1]의 값: 2
2차원 배열 [1] [0]의 값: 3
2차원 배열 [1] [1]의 값: 4
2차원 배열 [2] [0]의 값: 5
2차원 배열 [2] [1]의 값: 6
2차원 배열 [3] [0]의 값: 7
2차원 배열 [3] [1]의 값: 8
- 바깥쪽 for문은 세로 크기만큼, 안쪽 for문은 가로 크기만큼 반복
arr3[3][0] = 100;
arr3[3][1] = 100;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 2; j++) {
printf("2차원 배열 [%d] [%d]의 값: %d\\n", i, j, arr3[i][j]);
}
}
return 0;
//출력
2차원 배열 [0] [0]의 값: 1
2차원 배열 [0] [1]의 값: 2
2차원 배열 [1] [0]의 값: 3
2차원 배열 [1] [1]의 값: 4
2차원 배열 [2] [0]의 값: 5
2차원 배열 [2] [1]의 값: 6
2차원 배열 [3] [0]의 값: 100
2차원 배열 [3] [1]의 값: 100
- 2차원 배열에 인덱스로 접근해 값을 바꿀 수 있음.
'언어 > C' 카테고리의 다른 글
[코딩자율학습] 16일차 구조체 (0) | 2024.03.25 |
---|---|
[코딩자율학습] 15일차 동물카드 뒤집기 프로젝트 (0) | 2024.03.24 |
[코딩자율학습] 13일차 프로젝트 어항에 물주기 (0) | 2024.03.20 |
[코딩자율학습] 12일차 포인터 (0) | 2024.03.19 |
[코딩자율학습] 11일차 프로젝트: 자라나라 머리머리 (0) | 2024.03.18 |