Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

닷넷!시작하기

Microsoft. NET 을 시작하는 분들을 위한 강좌입니다. 주로 기초적인 내용과 때론 기본적인 내용을 다룹니다

배열의 종류

작성자 : 박종명
최초 작성일 : 2009-10-21 (수요일)
최종 수정일 : 2009-10-21 (수요일)
조회 수 : 3301

int[] array = new int[3];

1차원 배열 생성 구문입니다
보통의 경우, 1차원 배열만으로 충분한 경우가 많죠

2차원 이상 배열(다차원배열)을 사용하게 될 경우, 가변 배열과 조금 헷갈립니다

지금 당장, 2차원 배열 생성 구문 생각해 보세요
int[][] 이런 형태인가요? , int[,] 이런 형태인가요?

1차원 배열, 다차원 배열, 그리고 가변 배열에 대해 간략히 알아 보겠습니다

1) 1차원 배열
위 코드와 같이 생성해도 되지만, 생성과 함께 요소 값도 같이 정의 할 수 있는 아래 코드를 더 선호합니다

int[] array = new int[] {1,2,3}

이렇게 하면, 요소가 3개인 1차원 배열을 만들면서 각 요소 값도 정의할 수 있습니다
1차원 배열은 아래와 같은 모습을 상상하면 됩니다

이제, 배열의 요소를 탐색해 보겠습니다

for(int i = 0; i < array.Length; i++)
{
     Console.Write("{0} ", array[i]);
}


2) 다차원 배열
1차원 배열은 말 그대로 차원이 1개 이죠
다차원 배열은 차원이 다수개 입니다. 2차원 배열을 예로 들겠습니다

int[,] array = new int[2, 3]; 

또는

int[,] array = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };

로 생성 및 요소 정의를 할 수 있습니다

2차원 배열은 아래와 같은 모습을 상상하면 됩니다

이제, 배열의 요소를 탐색해 보겠습니다

for (int i = 0; i < array.GetLength(0); i++)
{
     for (int j = 0; j < array.GetLength(1); j++)
    {
         Console.Write("{0} ", array[i, j]);
    }
}

array.Length 는 배열 전체 요소의 수를 반환합니다. 이 예제에서는 총 6개입니다

2차원 배열을 탐색하기 위해서는 각 차원의 요소수를 계산해야 합니다
array.GetLength(차원) 은 해당 차원의 요소수를 반환하는 메서드 입니다



3) 가변배열
다차원 배열과 헷갈리지만, 전혀 다른 의미를 지닙니다

앞서, 1,2 차원 배열에서는 요소로 특정 값이 사용되었지만, 가변 배열에서는 요소로 배열이 사용됩니다
다시말해, 배열의 요소가 또 다른 배열을 가르키게 되는 구조입니다

C 언어 환경에서,
배열의 요소로 포인터를 지니게 되는 '포인터 배열'과 그 개념이 살짝(?) 유사하기도 한데요...

요소 1의 배열, 요소 2의 배열..  뭐 이런식인데요...

그래서, 가변 배열은 '배열의 배열' 이라고도 합니다.

아래 코드를 보시죠

int[][] array = new int[2][];
array[0] = new int[3] { 1, 2, 3 };
array[1] = new int[4] { 1, 2, 3, 4 };


가변 배열의 요소 크기를 2개로 하고 각 요소가 또 다른 배열을 가르키도록 합니다
이때 요소가 되는 배열은 그 크기가 고정되어 있지 않아도 됩니다

예제 코드 처럼, 0번재 요소 배열은 크기가 3개인 배열이고,1번째 요소 배열은 크기가 4인 배열입니다.
따라서 가변 배열이죠

가변 배열은 아라애 같은 모습을 상상하면 됩니다

이제, 배열의 요소를 탐색해 보겠습니다

for(int i = 0; i < array.Length; i++)
{
   for (int j = 0; j < array[i].Length; j++)
   {
      Console.Write("{0} ", array[i][j]);
   }
   Console.WriteLine();
}

이름
비밀번호
홈페이지
JB <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요