▶2차원 배열이란?
2차원 배열은 이전에 배웠던 배열의 확장이다.
이전에 배웠던 배열이
int arr[1];
이라면 오늘 배울 2차원 배열은 위 배열에서 아래와 같이조금 확장한 것이다.
int arr[1][2];
이처럼 이전에 배운 배열은 1차원 배열이라고 하고 오늘 배울 배열은 2차원 배열이라고 한다.
차이점은 index가 하나 늘어난것과 저장공간이 많아졌다는것 뿐이다. 아래의 사진을 보면 이해가 쉬울것이다.
[그림 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 □ □ □ 1 □ □ □ □ □
2 □ □ □ 2 □ □ □ □ □
arr1 arr2
위와 같이 각 배열에 행(가로 한줄)과 열(세로 한줄)이 생긴다.
▶2차원 배열의 값 대입
배열이
int arr[1][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)과같이 자료 값을 일일히 대입하기 어려운 상황에서 쓰면 좋다.
'C언어 > 보고서' 카테고리의 다른 글
C언어 :: 구조체 ( Struct ) (0) | 2015.05.11 |
---|---|
C 언어 :: 함수호출 Call by Reference (0) | 2015.04.15 |
C언어 :: malloc 함수를 이용한 동적할당 (1) | 2015.04.13 |
C언어 :: 배열이란 무엇일까?? (0) | 2015.04.12 |
C언어 :: c언어의 "꽃"이라고도 불리우는 포인터 ! (0) | 2015.04.12 |
WRITTEN BY