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

C#에서 가변 배열(Jagged Array) 선언하는 방법

가변 배열(Jagged Array)은 '배열의 배열'을 의미합니다. 일반적인 2차원 배열과 달리 각 행(내부 배열)의 길이가 서로 다를 수 있어, 크기가 들쭉날쭉한 데이터 구조를 표현할 때 유용하게 사용됩니다.

C#에서 int 타입의 가변 배열 scores는 다음과 같이 선언할 수 있습니다.

int[][] scores;

가변 배열의 특징

  • 각 내부 배열은 독립적으로 초기화되며, 길이가 달라도 됩니다.
  • 선언 시 외부 배열만 먼저 생성하고, 나중에 각 내부 배열을 따로 할당할 수도 있습니다.
  • 메모리를 더 유연하게 사용할 수 있어, 행마다 데이터 크기가 다른 경우에 적합합니다.

예제

다음 예제는 정수형 요소 2개씩을 가진 5개의 배열로 구성된 가변 배열을 선언하고, 중첩 반복문을 사용해 모든 요소의 값을 출력하는 코드입니다.

using System;
namespace ArrayApplication {
    class MyArray {
        static void Main(string[] args) {
            /* 정수 배열 5개로 구성된 가변 배열 */
            int[][] a = new int[][]{
                new int[]{0,0},
                new int[]{1,2},
                new int[]{2,4},
                new int[]{3,6},
                new int[]{4,8}
            };
            int i, j;

            /* 각 배열 요소의 값 출력 */
            for (i = 0; i < 5; i++) {
                for (j = 0; j < 2; j++) {
                    Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
                }
            }
            Console.ReadKey();
        }
    }
}

실행 결과

a[0][0] = 0
a[0][1] = 0
a[1][0] = 1
a[1][1] = 2
a[2][0] = 2
a[2][1] = 4
a[3][0] = 3
a[3][1] = 6
a[4][0] = 4
a[4][1] = 8

위 코드에서 볼 수 있듯이, 가변 배열은 a[i][j] 형태로 두 개의 인덱스를 사용해 각 요소에 접근합니다. 외부 인덱스 i는 어떤 내부 배열을 참조할지 결정하고, 내부 인덱스 j는 해당 배열 안의 실제 요소 위치를 가리킵니다.