기본 패턴
c
int scores[2][3] = {
{90, 80, 70},
{88, 77, 66}
};설명
- C의 다차원 배열은 배열 안에 배열이 들어 있는 구조로 이해하면 됩니다.
- 메모리에는 행 우선 순서로 이어서 저장되므로,
scores[0]다음에scores[1]행이 옵니다. - 인덱스 수는 차원 수와 같아야 하며, 각 차원의 길이는 선언 시점에 중요합니다.
- 중첩 반복문으로 순회하는 패턴이 가장 흔하고, 행렬 계산이나 테이블 데이터에서 자주 등장합니다.
짧은 예제
c
#include <stdio.h>
int main(void) {
int grid[2][3] = {{1, 2, 3}, {4, 5, 6}};
for (int row = 0; row < 2; row += 1) {
for (int col = 0; col < 3; col += 1) {
printf("%d ", grid[row][col]);
}
printf("\n");
}
return 0;
}빠른 정리
| 항목 | 설명 |
|---|---|
int a[2][3] | 2행 3열 정수 배열 |
| 행 우선 저장 | 첫 번째 행 전체 뒤에 다음 행이 이어짐 |
| 초기화 | 중첩 중괄호로 각 행을 나눠 적는 편이 읽기 좋음 |
| 중첩 반복문 | 행과 열을 차례로 순회하는 기본 패턴 |
| 함수 전달 | 뒤쪽 차원 크기를 알아야 인덱싱이 가능함 |
주의할 점
다차원 배열을 함수로 넘길 때는 마지막 차원 크기를 생략할 수 없습니다. 컴파일러가 메모리 간격을 알아야 arr[i][j]를 계산할 수 있기 때문입니다.