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

C#에서 초기화와 값 할당의 차이점은 무엇일까?

이번 글에서는 C# 프로그래밍에서 초기화(Initialization)값 할당(Assignment)의 차이점을 자세히 살펴보겠습니다. 두 개념은 비슷해 보이지만 메모리 관점에서 중요한 차이가 있습니다.

배열 선언

먼저 배열을 선언하는 방법부터 확인해 보겠습니다. 아래 코드는 정수형 배열 변수를 단순히 선언한 것입니다.

int[] n;  // 배열 선언

초기화(Initialization)

배열을 선언한다고 해서 메모리상에서 실제로 초기화되는 것은 아닙니다. 배열 변수를 초기화해야 비로소 배열에 값을 저장할 공간이 마련됩니다.

C#에서 배열은 참조 타입(reference type)이므로, 반드시 new 키워드를 사용하여 인스턴스를 생성해야 합니다.

int[] n = new int[10]; // 초기화

값 할당(Assignment)

배열이 초기화되면 이제 각 요소에 값을 할당할 수 있습니다. 인덱스 번호를 사용하면 개별 배열 요소에 원하는 값을 지정할 수 있습니다.

n[0] = 100;
n[1] = 200;

선언, 초기화, 값 할당을 한 번에 처리하기

C#에서는 한 줄의 코드로 배열을 선언하고, 초기화하고, 값을 동시에 할당할 수도 있습니다.

int[] n = new int[10] {100, 200, 300, 400, 500};

컴파일러의 암시적 기본값 초기화

배열을 생성하면 C# 컴파일러는 배열의 데이터 타입에 따라 각 요소를 암시적으로 기본값으로 초기화합니다. 예를 들어 int 배열이라면 모든 요소가 자동으로 0으로 설정됩니다. 참조 타입 배열의 경우에는 null, 불리언(bool) 배열은 false가 기본값이 됩니다.