ice rabbit programming

[C#] 배열(Array) 본문

Development/C#

[C#] 배열(Array)

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

자료형까지 다루고 텀이 살짝 길었다. 오늘은 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문은 일차원 배열 뿐만이 아니라 다차원 배열에서 사용해도 원소를 하나씩 가져오는 식으로 동작한다.

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

728x90

'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