검색결과 리스트
글
2차원 배열
- 2차원 배열은 1차원 배열과는 다르게 첨자 2 개를 사용하는 배열이다. 같은 데이터형의 변수가
행( row )과 열( column )을 나타내는 데 , 첫 번째 첨자는 행을, 두 번째 첨자는 열을 나타낸다.
Ⅰ. 행과 열
1차원 배열에서는 변수이름 [ 열 ]로 표현했지만 , 2차원 배열에선 변수 이름 [행] [열] 로 표현한다. 옆에 그림과 같이 표현한다.
Ⅱ. 2차원 배열의 크기
변수이름 [i:n][j:m] 의 크기는 i와 j 가 첫 번째 요소의 행과 열의 첨자이고, n과 m은 마지막 요소의 행과 열의 첨자이다.
따라서, 배열의 크기를 구하는 공식은 ( n-i+1) x ( m-j+1) 이다.
(ex) 위의 그림 처럼 첫 번째 요소의 행과 열은 [0][0]이므로 i 와 j 는 0이고, 마지막 요소의 행과 열은 [2][1]이므로 n은 2,
m은 1이다. 따라서 위의 그림의 배열의 크기는 (2-0+1) x (1-0+1) 으므로 3x2는 6이되어,
위 그림의 2차원 배열의 크기는 6이다.
Ⅲ. 2차원 배열의 저장 방식
2배원 배열에는 행 중심 저장 방식과 열 중심 저장 방식이 있다. 행 중심 저장 방식은 1번째 행,
2번째 행 .. 순으로 저장하고 열 중심 저장 방식은 마찬가지로 1번째 열, 2번째 열.. 식으로 저장 한다.
☞ 2차원 배열 arr[n][m]에서 첫 번째 요소의 행과 열의 첨자가 a이고 시작주소가 base, 요소의 크기가 size라고 할 때 ,
arr[i][j]의 주소를 구하는 공식은 다음 과 같다
① 행 중심 저장 방식
arr[i][j] 의 주소 = base + (m x (j-a)) x size
② 열 중심 저장 방식
arr[i][j] 의 주소 = base + (n x (j-a)) x size
(ex) 위의 사진을 예로 들면 시작 주소는 200이고 각 요소의 크기는 4이니.. ▼
① 행 중심 저장 방식의 arr[2][0]
200 + (2 x (2-0) + (0-0)) x 4 = 216
② 열 중심 저장 방식의 arr[2][0]
200 + (3 x (0-0) + (2-0)) x 4 = 208
두 결과 모두 원하는 결과를 출력하고 있다.
sourced by "NAVER"
'Programming > C' 카테고리의 다른 글
Stack과 Queue (0) | 2015.08.26 |
---|---|
Call-by-value 와 Call-by-reference (0) | 2015.08.26 |
동적 할당 (0) | 2015.08.26 |
[ Project ] Pascal (0) | 2015.08.26 |
포인터 ( Pointer ) (0) | 2015.06.14 |
RECENT COMMENT