2차원 배열의 개념과 요소 접근 — 행과 열, [행의_크기][열의_크기] 선언과 [행][열] 접근 | 기초 C언어 8.2.1-1
기초 C언어Chapter 08 배열 › Section 02 2차원 배열
8.2.1-1 2차원 배열의 개념과 요소 접근
1차원 배열을 여러 개 묶어 표처럼 다루는 2차원 배열. 행의 크기와 열의 크기로 선언하고 행 인덱스와 열 인덱스 두 개로 한 칸에 접근.
영상 목차 · 원하는 부분부터 보기
01한 줄에서 표로교재 237p
- 앞 편까지의 1차원 배열은 데이터를 한 줄로 나열한 구조. for 문으로 순회하는 데까지 확인.
- 2차원 배열(2-dimensional Array) — 1차원 배열을 여러 개 묶어 놓은 테이블(표)과 같은 구조.
- 학생들의 과목별 성적, 좌석 배치도, 바둑판, 엑셀 스프레드시트처럼 행(row)과 열(column)이 있는 데이터를 다룰 때 매우 유용.
02한 칸을 찾는 번호는 둘교재 237p
- 교재의 비유로는 1층짜리 단독주택이 1차원 배열, 그런 집이 여러 층 모인 아파트 건물이 2차원 배열. 특정 집을 찾으려면 ‘몇 층의 몇 호’를 알아야 하는 구조.
- 2차원 배열의 특정 요소에 접근하려면 행 번호와 열 번호 두 가지가 필요. 1차원 배열은 인덱스 하나, 2차원 배열은 인덱스 둘.
03자료형 배열이름[행의_크기][열의_크기];교재 238p
- 배열 이름 뒤에 대괄호가 둘. 첫째가 행의 크기, 둘째가 열의 크기. 행은 가로줄, 열은 세로줄.
- int scores[4][3]; — 4명의 학생(행)에 대한 3개 과목(열)의 점수를 저장하는 배열. 4 * 3 = 12개의 int형 공간을 할당.
- 표 모양은 이해를 돕기 위한 표현일 뿐. 실제 메모리에는 열두 칸이 첫 행부터 차례로 한 줄로 붙어 있는 구조.
열은 세로줄, 차례는 행 먼저
여기서 열은 숫자 10도 뜨거운 열도 아닌 세로줄이라는 뜻. 대괄호의 차례가 바뀌면 전혀 다른 모양의 표가 되므로 행 먼저, 열 나중으로 기억.
04배열이름[행_인덱스][열_인덱스]교재 238p
- 1차원 배열과 마찬가지로 행과 열의 인덱스는 모두 0부터 시작. 인덱스가 크기보다 1 작은 수에서 끝나는 규칙도 행과 열에 각각 적용.
- int scores[4][3]의 행 인덱스는 0~3, 열 인덱스는 0~2. 한 행이 학생 한 명, 한 열이 과목 하나의 점수.
| 열 0 (국어) | 열 1 (영어) | 열 2 (수학) | |
|---|---|---|---|
| 행 0 (1번 학생) | scores[0][0] | scores[0][1] | scores[0][2] |
| 행 3 (4번 학생) | scores[3][0] | scores[3][1] | scores[3][2] |
05CODE 8.5 — 두 칸을 골라 출력교재 238~239p
- CODE 8.5 — 2명의 학생 × 3과목 점수를 scores[2][3]에 담고, 두 칸을 골라 출력하는 예제. 행 0에는 90, 85, 100, 행 1에는 75, 95, 88을 저장.
- scores[0][2]는 1번 학생(행 0)의 세 번째 과목, scores[1][0]은 2번 학생(행 1)의 첫 번째 과목을 가리킴.
- 실행 결과는 1번 학생의 3번째 과목 점수: 100 / 2번 학생의 1번째 과목 점수: 75 두 줄. 상세 코드는 교재 CODE 8.5에서 확인.
사람이 세는 번호와 인덱스의 어긋남
‘1번 학생의 3번째 과목’은 scores[1][3]이 아니라 scores[0][2]. 사람은 1부터, 인덱스는 0부터 세므로 행과 열 모두 하나씩 빼서 적어야 함.
06정리와 다음 편교재 239p
- 2차원 배열은 행의 크기와 열의 크기를 대괄호 둘에 차례로 적어 선언하고, 행 인덱스와 열 인덱스로 한 칸에 접근.
- CODE 8.5는 선언과 함께 중괄호 안의 중괄호로 값을 채운 꼴. 이런 초기화의 다섯 가지 방법은 다음 편 8.2.1-2 2차원 배열 초기화하기에서 다룸.
이 절의 핵심 정리
- 2차원 배열은 1차원 배열을 여러 개 묶어 놓은 표와 같은 구조이다.
- 2차원 배열은 자료형, 배열 이름, 행의 크기, 열의 크기 순서로 선언한다.
- int scores[4][3]은 4행 3열, 모두 12개의 int형 공간을 할당한다.
- 2차원 배열의 요소에는 행 인덱스와 열 인덱스를 차례로 적어 접근하며 둘 다 0부터 시작한다.
- CODE 8.5에서 scores[0][2]는 100, scores[1][0]은 75를 출력한다.
강의 자료8.2.1-1 2차원 배열의 개념과 요소 접근
1 / 11
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
![2차원 배열의 개념과 요소 접근 — 행과 열, [행의_크기][열의_크기] 선언과 [행][열] 접근](https://i.ytimg.com/vi/aXFno6a0LVQ/maxresdefault.jpg)
댓글
댓글 쓰기