Page 145 고등학교 프로그래밍 교과서
P. 145
1 포인터 대해 알아보자
건물들의 주소를 보고 건물을 찾아갈 수 있듯이, 컴퓨터 메모리도 주소를 가지고
있어 그 주소로 안에 있는 데이터를 찾아간다. 이와 같이 메모리의 주소를 저장하고
있는 변수를 포인터라고 한다. 즉, 포인터가 저장하고 있는 것은 실제 값이 저장되어
있는 메모리의 주소이다. 아래 그림을 보면, 영화관, 학교, 빵집 등은 주소를 가지고
있지만, 포인터라는 구조물은 다른 건물의 주소만 가지고 있는 것을 알 수 있다.
포인터는 프로그램에서
자료를 저장하기 위한
자료 구조(data structure)를
만들 때 주로 사용할 뿐만 아니라
큰 값이나 긴 문자열, 파일 등을
처리할 때도 사용해.
포인터를 사용하기 위해서는 포인터를 선언해야 한다. 포인터를 선언할 때에는 자료
형을 먼저 쓰고, 포인터 연산자( )를 붙인 후 이름을 쓴다. 여기서 은 곱셈이 아니다.
*
*
포인터 연산자
포인터 변수가 가리키는 값이 int형 int * p; 선언할 포인터의 이름
[그림Ⅱ- 8] 포인터 선언
Q & A
예를 들어, 변수 a에 5를 넣어 초기화 한 후 포인터 변수 pt에 변수 a의 주소를 알 수 GByte가 넘는 동영상 파일을
변수에 저장하려고 한다. 어떻게 하
려 주면 pt는 5가 있는 위치를 가리킨다. 면 그 큰 파일을 변수에 저장할 수
있을까?
int a = 5; 정수형 변수 a 선언 수 GByte에 이르는 동영상 데이
int pt; 포인터 변수 pt선언 터를 일반 변수에 저장하려면 충분
*
한 용량의 주기억 장치가 필요하지
pt = &a; 포인터 변수 pt에 변수 a의 주소 대입
만 그렇지 못한 경우가 많다. 포인터
변수는 자료 전체를 담고 있지 않고
자료가 저장된 위치, 즉 주소만 가
지고 있으므로 큰 자료도 연결하는
값 주소 것이 가능하다. 즉, 주소를 이용하
여 필요한 용량만 주기억 장치로 가
져올 수 있는 것이다. 포인터가 없는
다른 언어도 내부적으로는 파일 등
을 처리할 때 포인터와 유사한 방식
[그림Ⅱ- 9] 포인터의 메모리 구조 을 사용한다.
7. 포인터 143
(책)2015프로그래밍-교과서3차심의본 본문.indb 143 2017-09-05 오후 4:16:32