💻 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;
  • 크기는 한번 선언하면 바꿀 수 없다.
  • 배열 크기를 벗어나는 인덱스로 배열에 접근하면 런타임 에러가 발생한다.

 

참고 사이트