본문 바로가기
Dev/Unity(C#)

C# 배열의 두가지 종류(다차원 배열, 가변 배열)

by E.Clone 2024. 1. 13.

C# 공부를 하며 계속 긴가민가 헷갈렸던 내용이 있어 정리.

2차원 이상의 배열을 사용하려고 할 때, 두 가지 방식으로 배열을 사용 할 수 있다.

int[,] array = new int[3, 2];

int[][] jaggedArray = new int[3][];

위의 방식처럼 [ , ] 한개의 대괄호 안에 쉼표가 들어가있는 모습과, 아래의 방식처럼 [ ][ ] 두 쌍의 대괄호를 사용하는 방식이다.

(어느쪽이 맞는지 매번 헷갈리다가, 둘 다 사용한다는 걸 이제 알았음)

 

1. 다차원 배열(Rectangular Arrays)

int[,] array = new int[3, 2];

괄호 내 쉼표를 사용하여 다차원 배열을 사용할 수 있다.

특징으로는 모든 행이 동일한 수의 열을 갖는다는 것.

 

2. 가변 배열(Jagged Arrays)

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[4];
jaggedArray[1] = new int[5];
jaggedArray[2] = new int[3];

가변 배열(Jagged Arrays) 또는 배열의 배열(Array of Arrays) 로 불리는 방식.

위의 예시에서는 첫 번째 배열(jaggedArray[0])은 4개의 요소를 갖고, 두 번째 배열(jaggedArray[1])은 5개의 요소를 갖는 등 각 행마다 다른 수의 요소를 가질 수 있다.

 

3. 두 배열의 차이점

구조: 다차원 배열은 모든 행과 열의 크기가 같은 반면, 가변 배열은 각 행이 서로 다른 크기를 가질 수 있다.

메모리 할당: 다차원 배열은 단일 연속된 메모리 블록에 할당되는 반면, 가변 배열은 각 행마다 별도의 메모리 블록에 할당된다.

성능: 일반적으로 가변 배열은 다차원 배열보다 접근 속도가 빠르다. 이는 다차원 배열이 메모리에서 더 복잡하게 처리되기 때문.

사용 용도: 다차원 배열은 데이터가 균일한 그리드 형태일 때 유용하고, 가변 배열은 각 행의 길이가 다를 수 있는 더 복잡한 데이터 구조를 다룰 때 유용하다.

반응형