본문 바로가기
프로그래밍/c#

c#_28 배열 Array 1

by 지나팩 2021. 6. 1.

배열 Array에 대해서 알아보겠습니다. 배열은 데이터의 집합체라고 할 수 있습니다. 변수는 하나의 데이터(값)만을 담을 수 있지만 배열은 여러 개의 데이터를 담을 수 있습니다. 다만 여러가지의 데이터 타입을 담는 것은 아니고 하나의 데이터 타입만 담을 수 있습니다. 아래의 그림을 통해 알아보겠습니다.

그림에서 보다시피 여러 종류가 아닌 하나의 종류만 담을 수 있도록 상자에 주기를 한 것 처럼 하나의 데이터 타입만을 담을 수 있습니다. 그리고 상자의 크기만큼 사과를 담을 수 있듯 배열의 크기만큼 데이터를 담을 수 있습니다. 물론 위 그림에서처럼 사과의 색이나 사이즈 등이 다른 것처럼 데이터 타입은 같지만 그 값은 다를 수 있습니다.

위 배열은 int 정수형 타입을 담을 수 있는 6크기의 int 배열입니다. 배열의 인덱스는 각 공간 또는 각 층이라고 생각을 하셔도 될 것 같습니다. 각 층으로 표현하자면 0번째 층에는 11이라는 정수형 데이터 값이 들어가있습니다. 3번째 층에는 8의 데이터 값이 들어가 있는 걸 보실 수 있습니다. 이제 예제를 통해 배열의 사용법을 알아보도록 하겠습니다.

배열의 변수 선언은 변수 선언 처럼 데이터 타입과 이름을 써주면 됩니다. 다만 데이터 타입 바로 뒤에 [ ]붙혀주어야 배열이 됩니다. 그리고 new 키워드를 통해 배열의 크기만큼 메모리 heap영역에 배열을 생성해주어야 합니다.

위 예제에서 빨간줄의 Length는 배열의 현재 크기를 반환합니다(i < 6). 즉 num.Length는 new int[6]의 크기로 배열을 생성했으므로 6이 됩니다. 반복문 안의 num[i]가 배열의 각 공간 또는 층에 접근하는 방법으로 반복문의 i의 값이 증가하며 배열의 모든 층에 접근하여 i의 값을 대입하고 있습니다. num[0]에는 0, num[1]에는 1..... 차례로 값이 대입되어있는 걸 볼 수 있습니다.

물론 위 예제처럼 직접 접근하여 값을 대입할수도 있습니다. 다만 주의해야 할 점은 배열 크기 이상의 인덱스로 접근을 시도한다면 오류가 발생하니 주의해야합니다.

댓글