반응형
1. 배열(Array)
배열은 고정된 크기의 동일한 데이터 타입의 요소들을 연속적으로 저장하는 데이터 구조입니다. 배열의 크기는 선언 시에 정해지며, 한 번 생성되면 크기를 변경할 수 없습니다.

[배열의 특징]
- 고정된 크기 : 배열을 생성할 때 크기를 정하면 나중에 변경할 수 없습니다.
- 동일한 데이터 타입 : 배열의 모든 요소는 동일한 데이터 타입을 가져야 합니다.
- 인덱스 접근 : 배열의 각 요소는 0부터 시작하는 인덱스로 접근할 수 있습니다.

// 배열 선언 및 초기화
int[] numbers = new int[5]; // 5개의 int 요소를 저장할 수 있는 배열
numbers[0] = 10;            // 첫 번째 요소에 10을 저장
numbers[1] = 20;            // 두 번째 요소에 20을 저장

// 배열을 선언과 동시에 초기화
int[] moreNumbers = { 1, 2, 3, 4, 5 };

// 배열 요소 접근 및 출력
Console.WriteLine(moreNumbers[2]); // 출력: 3​

[배열의 단점]
배열은 선언 시 크기를 지정해야 하므로, 동적으로 크기를 변경할 수 없습니다. 이로 인해 요소의 추가나 삭제가 필요할 경우 불편할 수 있습니다.

 

2. 가변 배열(Jagged Array)
가변 배열은 배열의 배열을 의미합니다. 즉, 각 배열 요소가 또 다른 배열을 참조하는 구조입니다. 이 배열의 특징은 각 내부 배열의 길이가 다를 수 있다는 점입니다. 이를 통해 복잡한 데이터 구조를 보다 효율적으로 관리할 수 있습니다.

[가변 배열의 특징]
- 각 배열의 크기가 다를 수 있음 : 가변 배열의 각 요소는 크기가 다른 배열을 가질 수 있습니다.
- 배열의 배열 : 가변 배열은 다차원 배열과는 다르게 각 차원에 대해 독립적인 크기를 가질 수 있습니다.

// 가변 배열 선언 및 초기화
int[][] jaggedArray = new int[3][]; // 3개의 배열을 포함하는 가변 배열

// 각 배열에 개별적으로 크기를 지정하고 초기화
jaggedArray[0] = new int[] { 1, 2 };
jaggedArray[1] = new int[] { 3, 4, 5 };
jaggedArray[2] = new int[] { 6, 7, 8, 9 };

// 가변 배열 요소 접근 및 출력
Console.WriteLine(jaggedArray[1][2]); // 출력: 5​

 

가변 배열의 사용 사례 :

가변 배열은 각 행에 서로 다른 수의 열을 갖는 데이터 구조를 관리해야 할 때 유용합니다. 예를 들어, 학생들의 점수를 과목별로 저장할 때 각 학생이 응시한 과목 수가 다를 수 있으므로 가변 배열을 사용할 수 있습니다.

 

3. 배열과 가변 배열의 차이점
- 크기 : 배열은 모든 요소의 크기가 동일하지만, 가변 배열은 각 배열 요소가 참조하는 배열의 크기가 다를 수 있습니다.
- 구조 : 배열은 일차원, 이차원, 다차원 배열로 구성될 수 있는 반면, 가변 배열은 배열 자체가 또 다른 배열을 참조하는 방식입니다.
- 사용 용도 : 배열은 일반적으로 고정된 크기의 동일한 데이터 타입 요소들을 다룰 때 사용되며, 가변 배열은 불규칙한 데이터 구조를 관리할 때 유용합니다.

 

 

[정리하며]

- 배열은 고정된 크기의 동일한 타입의 데이터를 연속적으로 저장하는 구조로, 간단하고 효율적인 데이터 관리를 제공합니다.

- 가변 배열은 배열의 배열을 의미하며, 각 내부 배열의 크기가 달라도 되는 유연한 구조를 제공하여 복잡한 데이터 구조를 관리하는 데 적합합니다.

 

반응형

+ Recent posts