배열(array)은 동일한 자료형의 요소들이 연속된 메모리 위치에 나란히 저장되어 있는 자료 구조입니다. 가장 낮은 메모리 주소는 첫 번째 요소에 대응하고, 가장 높은 주소는 마지막 요소에 대응합니다. 배열의 인덱스는 0부터 시작하여 (배열 크기 − 1)에서 끝나며, 배열의 크기는 반드시 0보다 큰 정수여야 합니다.
배열 인덱스의 기본 규칙
배열 크기 = 10 첫 번째 인덱스 = 0 마지막 인덱스 = 배열 크기 - 1 = 10 - 1 = 9
다차원 배열이란?
다차원 배열(multi-dimensional array)은 말 그대로 '배열의 배열' 형태를 가진 구조입니다. 이때 데이터는 행 우선(row-major) 순서로 표(table) 형태에 저장됩니다.
C 언어에서 다차원 배열 선언 문법
type array_name[array_size1][array_size2].......[array_sizeN];
각 항목의 의미는 다음과 같습니다.
array_name − 배열에 부여하는 임의의 이름입니다.
array_size − 각 차원의 배열 크기입니다.
다차원 배열 초기화하기
다차원 배열은 선언과 동시에 중괄호({})를 사용해 아래와 같이 초기화할 수 있습니다.
type array_name[array_size1][array_size2].......[array_sizeN] = { {요소들}, {요소들}, ... {요소들} };C 언어 다차원 배열 예제
다음은 2행 3열 크기의 2차원 배열을 선언·초기화한 후, 중첩 for문으로 모든 요소를 출력하는 예제입니다.
#include <stdio.h>
int main () {
int arr[2][3] = { {5,2,3}, {28,8,30}};
int i, j;
for ( i = 0; i < 2; i++ ) {
for ( j = 0; j < 3; j++ )
printf("arr[%d][%d] = %d\n", i, j, arr[i][j] );
}
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
arr[0][0] = 5 arr[0][1] = 2 arr[0][2] = 3 arr[1][0] = 28 arr[1][1] = 8 arr[1][2] = 30
예제에서 arr은 2행 3열의 2차원 배열로, 총 6개의 int 값을 저장할 수 있습니다. 바깥쪽 for문이 행(첫 번째 인덱스)을, 안쪽 for문이 열(두 번째 인덱스)을 순회하면서 배열의 모든 요소를 차례대로 접근하게 됩니다.