C언어는 3차원 이상의 배열을 지원하며, 이를 다차원 배열(multidimensional array)이라고 합니다. 배열이 가질 수 있는 차원 수의 정확한 상한은 사용하는 컴파일러에 따라 달라집니다.
다차원 배열 선언 문법
다차원 배열의 기본 선언 형식은 다음과 같습니다.
데이터타입 배열이름 [크기1] [크기2] ----- [크기n];
예를 들어, 3차원 배열을 선언하려면 다음과 같이 작성합니다.
int a[3][3][3];
이 배열에 저장할 수 있는 요소의 총 개수는 각 차원 크기를 곱하여 계산합니다.
요소 개수 = 3 × 3 × 3 = 27개
다차원 배열 예제 프로그램
다음은 3차원 배열을 선언하고 중첩 반복문을 사용해 모든 요소를 출력하는 C 프로그램입니다.
#include<stdio.h>
main() {
int a[2][2][2] = {1, 2, 3, 4, 5, 6, 7, 8};
int i, j, k;
printf("배열의 요소들은 다음과 같습니다 :\n");
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
for (k = 0; k < 2; k++) {
printf("%d ", a[i][j][k]);
}
}
}
}코드 설명
- int a[2][2][2]: 각 차원마다 크기가 2인 3차원 배열을 선언하고, 총 8개의 값으로 초기화합니다.
- 중첩 for문: 세 개의 인덱스(i, j, k)를 순회하면서 배열의 모든 요소에 차례로 접근합니다.
실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
배열의 요소들은 다음과 같습니다 : 1 2 3 4 5 6 7 8
정리
다차원 배열은 행렬, 이미지 데이터, 3차원 좌표 등 복잡한 구조의 데이터를 표현할 때 유용하게 활용됩니다. 차원이 늘어날수록 필요한 반복문의 개수도 함께 증가하므로, 인덱스 범위를 벗어나지 않도록 주의하는 것이 중요합니다.