ice rabbit programming

[C#] 배열(Array) 본문

Development/C#

[C#] 배열(Array)

판교토끼 2020. 4. 30. 21:53

자료형까지 다루고 텀이 살짝 길었다. 오늘은 Array, 배열에 대해 다루려고 한다.

배열은 여느 프로그래밍 언어에 있는 것으로, [같은 타입, 연속된 메모리]라는 특징을 가진다. 연속된 메모리라는 부분 때문에 C/C++을 하신 분들은 배열과 포인터의 관계에 대해서 많이 학습을 하셨을 것이다.

C#에서의 특징은 지난 글에서 설명한 것처럼 Reference Type이라는 것과, 모든 배열은 [] - Array - Object의 단계로 상속받는다는 점이다.

int[] arr = new int[5]; // 기본적인 1차원 배열
int[] arr2 = {1,2,3,4,5}; // 이렇게 해도 5칸의 1차원 배열
int[,] arr3 = new int[3,2] // 다차원 배열
int[][] arr4 = new int[3][]; // 가변 배열

위와 같이 사용할 수 있는데, 다차원 배열까지는 아마 다들 아실 텐데, C#에서는 가변 배열을 지원한다.

C++에서 동적 할당을 통해 배열을 만드는 것과 비슷한데, stack에 arr4를 생성한 후에 heap에 참조 배열을 만들고 그 참조가 다시 값들을 가리키는 식으로 가변 배열이 구성된다.

더불어 foreach문은 일차원 배열 뿐만이 아니라 다차원 배열에서 사용해도 원소를 하나씩 가져오는 식으로 동작한다.

다음 글에서는 메소드와 인자에 대해서 정리해보고자 한다.

'Development > C#' 카테고리의 다른 글

[C#] Property와 Indexer  (0) 2020.05.10
[C#] 메소드  (0) 2020.05.04
[C#] C#의 자료형3 - Casting과 Boxing  (0) 2020.04.18
[C#] C#의 자료형2 - Value vs Reference, Nullable  (2) 2020.04.15
[C#] C#의 자료형  (0) 2020.04.10