배열 요소의 접근 — 인덱스와 대괄호, 요소 값의 읽기·수정과 변수 인덱스 | 기초 C언어 8.1.2
기초 C언어Chapter 08 배열 › Section 01 1차원 배열
8.1.2 배열 요소의 접근
배열이름[인덱스]로 배열의 한 칸을 골라 읽고 바꾸는 방법. 숫자 상수 대신 정수형 변수를 인덱스로 쓰는 경우까지 확인.
영상 목차 · 원하는 부분부터 보기
01특정한 한 칸이 필요한 순간교재 232p
- 앞 편에서는 배열을 선언하고 초기화하여 여러 데이터를 담을 저장 공간을 만듦. 이제는 그중 특정한 한 칸의 값을 사용하거나 바꾸는 방법이 필요.
- 배열의 각 요소(element)에 접근하기 위해 사용하는 것이 인덱스(Index). 앞 편에서 본 대로 0부터 시작.
- 교재의 비유로는 배열이 커다란 아파트 건물, 인덱스는 원하는 몇 호실인지 정확히 가리키는 주소. 여기서 주소는 메모리 주소가 아니라 호실 번호라는 뜻.
02배열 이름 뒤에 대괄호와 번호교재 232p
- 형식은 배열이름[인덱스]. 배열 이름 뒤에 대괄호 []를 붙이고, 그 안에 원하는 요소의 인덱스 번호를 적음.
- scores[2]는 scores 배열의 인덱스 2, 곧 세 번째 요소를 가리킴. 사람이 세는 순서와 인덱스가 하나씩 어긋나는 구조.
선언의 숫자와 접근의 숫자는 다름
int scores[5];의 5는 칸의 개수, scores[2]의 2는 칸의 번호. 접근할 때 음수나 크기 이상의 번호를 쓰면 앞 편에서 본 존재하지 않는 칸에 접근하게 되므로 주의.
03일반 변수와 같은 취급교재 232p
| 쓰임 | 예 | 동작 |
|---|---|---|
| 읽기 | printf의 %d 자리에 scores[2] | 칸의 값을 꺼내 출력, 값은 그대로 |
| 수정 | scores[2] = 95; | 칸에 새 값을 대입해 덮어씀 |
- 배열이름[인덱스]로 쓴 표현은 해당 자료형의 일반 변수와 동일하게 취급. 값을 읽어 올 수도, 새 값을 대입하여 수정할 수도 있음.
- 4.2.2에서 대입 연산자 = 의 왼쪽에는 변수만 올 수 있다고 함. 배열이름[인덱스]도 값을 담는 한 칸이므로 그 자리에 올 수 있음. 다만 배열 이름만 따로 왼쪽에 쓰는 것은 불가.
04CODE 8.2 — 세 번째 요소의 값 수정교재 232~233p
- CODE 8.2 — 앞 편과 같은 scores 배열에서 scores[2]의 값을 출력하고, 95를 대입한 뒤 다시 출력하는 예제.
- 실행 결과는 수정 전 3번 학생의 점수: 100 / 수정 후 3번 학생의 점수: 95 두 줄. 대입하는 문장에는 printf가 없어 출력이 두 줄뿐.
- 상세 코드와 풀이는 교재 CODE 8.2에서 확인.
05읽어 오고 덮어쓰고 확인교재 233p
- scores[2]라는 표현으로 100을 읽어 와 출력하고, 대입 연산자 =로 같은 공간의 값을 95로 덮어쓴 뒤 다시 출력하여 변경을 확인하는 흐름.
- 바뀐 것은 인덱스 2의 칸 하나뿐. 나머지 네 칸의 90, 85, 77, 92는 그대로 유지.
- 덮어쓰면 원래 있던 100은 남지 않고 사라짐. 일반 변수에 새 값을 대입할 때와 같은 결과.
06변수를 인덱스로 사용교재 233p
- 배열 인덱스에는 숫자 상수뿐만 아니라 정수형 변수도 사용 가능. int i = 4;일 때 scores[i]는 scores[4]와 동일하게 동작하여 5번 학생의 점수 92를 출력.
- 실행할 때 변수 i에 든 값을 꺼내 번호로 쓰는 구조. 이 특징은 배열의 무한한 확장 가능성을 보여 줌.
- i를 0부터 4까지 바꾸며 대괄호 안에 넣으면 다섯 칸을 차례로 접근 가능. for 문과의 결합은 다음 편 8.1.3 반복문과 배열의 조합에서 다룸.
이 절의 핵심 정리
- 인덱스는 배열의 각 요소에 접근하기 위해 사용하는 번호이다.
- 배열의 특정 요소에는 배열 이름 뒤 대괄호 안에 인덱스를 적어 접근한다.
- 배열이름[인덱스]는 일반 변수처럼 값을 읽거나 새 값을 대입하여 수정할 수 있다.
- CODE 8.2에서 scores[2]의 값 100은 대입 후 95로 바뀌고 나머지 요소는 그대로 남는다.
- 인덱스 자리에는 숫자 상수뿐 아니라 정수형 변수도 쓸 수 있다.
강의 자료8.1.2 배열 요소의 접근
1 / 9
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기