C언어 독학 다차원 배열
이번 글에서는 C언어의 다차원 배열의 기본 개념을 정리해볼까 합니다. 1차원 배열은 같은 자료형을 메모리상에 한 줄로 연속으로 나열하는 방식으로 데이터를 저장해서 관리를 용이하게 해주는 역할을 하는데요. 다차원 배열(일반적으로 2차원 배열)은 가로와 세로로 데이터를 저장하게 됩니다. 아파트 구조를 생각하면 이해하는데 도움이 좀 될 겁니다. 3층짜리에 각 층마다 2가구가 산다면 3행(층) 2열(가구)가 되겠죠? C언어에서 다차원 배열도 같은 형식으로 저장이 되고 2차원 배열의 선언 형식은 다음과 같습니다.
int apt[3][2];
이렇게 2차원 배열을 선언하면 세로가 3, 가로가 2인 2차원 배열이 되는 건데요.
apt[0][0] |
apt[0][1] |
apt[1][0] |
apt[1][1] |
apt[2][0] |
apt[2][1] |
▲ 1차원 배열과 마찬가지로 인덱스 값은 '0'부터 시작하기 때문에 각각의 자리에 접근하기 위해서 (n-1)을 하면 됩니다. 예를 들어 3층 두 번째 집에 접근한다면 apt[2][1]이 되겠죠? 이렇게 2차원 배열의 개념을 잡고 이 배열을 활용하는 예제를 하나 만들어보겠습니다.
▲ 예제는 3층에 각각 2가구가 사는 아파트가 있다고 가정하고 각 가구에 사는 사람들의 수를 입력받아서 다시 그대로 출력하는 내용인데요. 다차원 배열 역시 인덱스 값으로 접근하기 때문에 예제처럼 아파트 구조와 동일한 형태로 다차원 배열을 선언하고 for 문을 중첩시키는 형태로 접근하고 있습니다.
이렇게 해서 다차원 배열의 기본 구조만 확인해봤는데요. 다음 글에 이어서 초기화 및 메모리에 할당되는 형태 등 좀 더 자세한 내용을 정리하겠습니다. 수고하셨어요.