Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C언어 다차원 배열의 선언과 초기화 방법 완벽 정리

배열의 기본 개념

배열(Array)은 동일한 자료형의 요소들이 연속된 메모리 공간에 나란히 저장되어 있는 자료구조입니다. 가장 낮은 메모리 주소는 첫 번째 요소에 대응하고, 가장 높은 주소는 마지막 요소에 대응합니다. 배열의 인덱스는 항상 0부터 시작하며, 마지막 인덱스는 '배열 크기 - 1'이 됩니다. 또한 배열의 크기는 반드시 0보다 큰 정수로 지정해야 합니다.

간단한 예를 통해 확인해 보겠습니다.

배열 크기 = 10일 때
첫 번째 인덱스 = 0
마지막 인덱스 = 배열 크기 - 1 = 10 - 1 = 9

다차원 배열이란?

다차원 배열(Multi-dimensional Array)은 말 그대로 '배열의 배열'을 의미합니다. 다차원 배열의 데이터는 표(테이블) 형태로 다루어지며, 실제 메모리에는 행 우선(row-major) 순서로 저장됩니다.

다차원 배열을 선언하는 기본 문법은 다음과 같습니다.

type array_name[array_size1][array_size2] ... [array_sizeN];

각 구성 요소의 의미는 아래와 같습니다.

array_name − 사용자가 배열에 지정하는 임의의 이름입니다.

array_size − 각 차원별 배열의 크기를 나타냅니다.

다차원 배열의 초기화 방법

다차원 배열은 선언과 동시에 중괄호({})를 이용해 초기화할 수 있습니다. 각 행의 요소들을 중괄호로 묶어 순서대로 나열하면 됩니다.

type array_name[array_size1][array_size2] ... [array_sizeN] = { {요소들}, {요소들}, ..., {요소들} };

예제 코드

다음은 2행 3열 크기의 2차원 배열을 선언하고 초기화한 후, 모든 요소를 출력하는 예제입니다.

#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

코드 설명

위 프로그램에서는 먼저 2행 3열 크기의 2차원 배열을 선언하고 초기화했습니다.

int arr[2][3] = { {5,2,3}, {28,8,30}};

이때 첫 번째 중괄호 {5,2,3}은 첫 번째 행의 요소들을, 두 번째 중괄호 {28,8,30}은 두 번째 행의 요소들을 의미합니다.

배열의 모든 요소는 중첩 for 루프를 사용하여 출력됩니다. 바깥쪽 루프는 행(row)을 순회하고, 안쪽 루프는 각 행의 열(column)을 순회하면서 요소 값을 하나씩 화면에 출력합니다.

for ( i = 0; i < 2; i++ ) {
    for ( j = 0; j < 3; j++ )
        printf("arr[%d][%d] = %d\n", i, j, arr[i][j] );
}