2차원 배열의 개념과 요소 접근 — 행과 열, [행의_크기][열의_크기] 선언과 [행][열] 접근 | 기초 C언어 8.2.1-1

기초 C언어Chapter 08 배열 › Section 02 2차원 배열

8.2.1-1 2차원 배열의 개념과 요소 접근

1차원 배열을 여러 개 묶어 표처럼 다루는 2차원 배열. 행의 크기와 열의 크기로 선언하고 행 인덱스와 열 인덱스 두 개로 한 칸에 접근.

교재 수록 위치
교재
『기초 C언어』 · 이은상 · 부크크 · 364쪽
단원
Chapter 08 배열 › Section 02 2차원 배열 › 2차원 배열의 개념과 요소 접근
쪽수
237p ~ 239p3쪽
세부 내용
2차원 배열이란? · 2차원 배열 선언하기 · 2차원 배열 요소 접근하기 · CODE 8.5
학습 목표
2차원 배열의 행과 열 구조를 이해하고, 선언 형식과 두 인덱스를 이용한 요소 접근을 구분함
영상 목차 · 원하는 부분부터 보기
  1. 0:00 · 강의 소개와 2차원 배열
  2. 2:27 · 배열 선언과 행·열 크기
  3. 4:04 · 두 인덱스로 요소 접근
  4. 5:58 · 학생별 점수 출력 예제
  5. 8:43 · 핵심 정리

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차원 배열 초기화하기에서 다룸.

이 절의 핵심 정리

  1. 2차원 배열은 1차원 배열을 여러 개 묶어 놓은 표와 같은 구조이다.
  2. 2차원 배열은 자료형, 배열 이름, 행의 크기, 열의 크기 순서로 선언한다.
  3. int scores[4][3]은 4행 3열, 모두 12개의 int형 공간을 할당한다.
  4. 2차원 배열의 요소에는 행 인덱스와 열 인덱스를 차례로 적어 접근하며 둘 다 0부터 시작한다.
  5. CODE 8.5에서 scores[0][2]는 100, scores[1][0]은 75를 출력한다.
강의 자료8.2.1-1 2차원 배열의 개념과 요소 접근 1 / 11

번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 8.2.1-2 2차원 배열 초기화하기 교재 239p~241p — 바깥쪽 중괄호는 전체 표, 안쪽 중괄호는 각 행 ↗

더 자세한 내용은 교재에서

이 글은 『기초 C언어』 237p~239p의 내용을 강의 영상에 맞춰 핵심만 간추린 요약입니다. 각 개념의 상세한 설명과 예제, 실습 코드, 임용시험 기출문제 풀이는 교재에서 다루고 있습니다.

댓글

이 블로그의 인기 게시물

2007년 국가직 9급 기계일반 기출문제 풀이

기계공작법 연습문제 130문 | 임용 기출 영상·교재 쪽수 바로가기