2차원 배열이란?

 2차원 배열은 이전에 배웠던 배열의 확장이다.

이전에 배웠던 배열이 

int arr[1]; 

이라면 오늘 배울 2차원 배열은 위 배열에서 아래와 같이조금 확장한 것이다.

int arr[1][2];

이처럼 이전에 배운 배열은 1차원 배열이라고 하고 오늘 배울 배열은 2차원 배열이라고 한다.

차이점은 index가 하나 늘어난것과 저장공간이 많아졌다는것 뿐이다. 아래의 사진을 보면 이해가 쉬울것이다.


[그림 7-5] 2차원 배열의 표현

[그림 7-5] 2차원 배열의 표현

 

 

 

[네이버 지식백과]다차원 배열 (컴퓨터 개론, 2013.3.10, 한빛아카데미(주))





2차원 배열의 선언과 저장


자료형 변수명[열][행]

예)int arr1[2][2]; char arr2[4][3];

     0  1 2              0 1  2  3  4 

  0 □ □ □          0 □ □ □ □ 

  □ □ □          1 □ □ □ □ 

  2 □ □ □          2 □ □ □ □ 

arr1              arr2 


위와 같이 각 배열에 행(가로 한줄)과 열(세로 한줄)이 생긴다. 



2차원 배열의 값 대입

배열이 

int arr[1][2]; 와 같을때 아래의 그림처럼 나온다


[그림 7-5] 2차원 배열의 표현






[네이버 지식백과] 다차원 배열 (컴퓨터 개론, 2013.3.10, 한빛아카데미(주))

그렇다면 값을 어떻게 대입 시켜줄까? 

a[0][0] = 5;

a[0][1] = 5;

a[1][0] = 5;

a[1][1] = 5;

a[2][0] = 5;

a[2][1] = 5;


이렇게 하드코딩을 할수도 있지만 다음과 같이 for문을 쓰면 쉽게 선언을 할수있다.

for(i=0; i<3;i++) {

     for(j=0; j<2; j++){

   a[i] = 5;

}

 또한 이 방법 말고도 다음과 같이처음에 선언할때도 값을 대입할 수있다.

예)int arr1[1][2]= { {5, 4}, {3, 2}, {7, 8} };

         0   1  

     0  ⑤  ④  

     1  ③  ② 

     2     


2차 배열의 활용도

2차 배열을 사용함으로써 데이터의 관리를 쉽게 할수 있으며 맵(map)과같이 자료 값을 일일히 대입하기 어려운 상황에서 쓰면 좋다.



 



WRITTEN BY
Who1sth1s

,