💻 Computer Science/Data Structure
[C#] Data Structure#02 | Array(정적 배열)
Sugar0810
2023. 1. 15. 13:09
Array(배열)
int [] array = new int[5];
array[0] = 10;
array[1] = 20;
array[2] = 30;
array[3] = 40;
array[4] = 50;
int [] array2 = new int[] { 10, 20, 30 };
int [] array3 = new int[5] { 10, 20, 30, 40, 50 };
동일한 자료형을 가진 데이터들을 연속적인 메모리로 저장하여 인덱스로 접근할 수 있게 된다.
new
키워드를 사용하여 동적으로 할당받는 배열을 만들 수 있다. (동적으로 할당 받았다고해서 동적 배열인 것은 아님. 동적 배열은 크기가 가변적인 배열을 의미. 동적으로 할당, 즉 힙 메모리에 할당 받았을 뿐 크기를 바꿀 수 없는 정적 배열이다.)- Call by Reference : 배열을 동적으로 할당 받으므로(배열 데이터가 힙메모리에 있으므로) 동일한 배열 메모리를 가리키는 변수가 여러개일 수도 있다.
int [] array = new int[5] { 10, 20, 30, 40, 50 }; int [] array2 = array;
new
를 생략하는 것도 가능하다. 그래도 두 변수가 동일한 배열 메모리를 가리킬 수 있는 것을 보면 동적으로 할당(힙 메모리로) 받는 것 같다. C#은 C++과 달리 배열이 무조건 힙 메모리에 존재하게 되어 있다. 즉 무조건 동적으로 할당 받음.int [] array = { 10, 20, 30 }; int[] array2 = array;
- Call by Reference : 배열을 동적으로 할당 받으므로(배열 데이터가 힙메모리에 있으므로) 동일한 배열 메모리를 가리키는 변수가 여러개일 수도 있다.
- 크기는 한번 선언하면 바꿀 수 없다.
- 배열 크기를 벗어나는 인덱스로 배열에 접근하면 런타임 에러가 발생한다.