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

C#에서 배열을 선언하면 실제로 배열이 생성될까요?

C# 배열 선언과 생성의 차이

C#에서 배열을 선언하는 것만으로는 메모리에 배열이 초기화되지 않습니다. 단순히 선언된 상태에서는 아직 실제 배열이 존재하지 않으며, 배열 변수를 초기화해야 비로소 값을 할당할 수 있습니다.

예를 들어 다음 코드는 배열의 '선언'에 해당하며, 이 시점에서는 배열이 실제로 생성되지 않습니다.

int[] id;

new 키워드로 배열 인스턴스 생성하기

반면 아래 코드처럼 작성하면 정수형 배열이 실제로 생성됩니다. C#에서 배열은 참조 타입(reference type)이기 때문에, 배열의 인스턴스를 만들려면 반드시 new 키워드를 사용해야 합니다.

int[] id = new int[5] {};

즉, 선언은 변수가 어떤 형태의 배열을 참조할지 알려주는 단계일 뿐이고, new 키워드를 통해 메모리에 실제 공간이 할당되는 것입니다.

전체 예제 코드

다음 예제는 배열을 선언하고, new 키워드로 생성한 후 반복문을 이용해 요소를 초기화하고 출력하는 과정을 보여줍니다.

using System;

namespace ArrayApplication {
    public class MyArray {
        public static void Main(string[] args) {
            int [] n = new int[5];
            int i, j;

            /* 배열 n의 각 요소 초기화 */
            for ( i = 0; i < 5; i++ ) {
                n[ i ] = i + 10;
            }

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

실행 결과

Element[0] = 10
Element[1] = 11
Element[2] = 12
Element[3] = 13
Element[4] = 14

위 예제에서 볼 수 있듯이, int[] n = new int[5]; 구문을 통해 크기가 5인 정수 배열이 메모리에 생성되었고, 이후 반복문으로 각 요소에 값을 저장한 뒤 정상적으로 출력된 것을 확인할 수 있습니다.