for textmining

포인터(pointer)

|

이번 글에서는 포인터(pointer) 개념에 대해 살펴보도록 하겠습니다. 이 글은 고려대 김황남 교수님 강의를 정리하였음을 먼저 밝힙니다. 그럼 시작하겠습니다.

개념

포인터란 다른 변수의 메모리 공간주소를 가리키는 변수를 가리킵니다. 포인터는 C, C++ 등과 같은 언어에서는 프로그래머가 직접 제어할 수 있고, 파이썬 등과 같은 언어에서는 완전히 숨겨져 사용할 수 없습니다. 하지만 프로그래머가 사용할 수 없다고 해서 해당 언어에서 포인터가 전혀 쓰이지 않는 건 아니어서 그 개념을 알고 있을 필요가 있습니다.

예시

포인터를 명시적으로 다룰 수 있는 C언어에서 다음과 같은 코드가 있다고 칩시다.

int i, *pi, **ppi;
i = 5;
pi = &i;
ppi = π

위 코드를 그림으로 나타내면 다음과 같습니다.

$i$, $pi$, $ppi$가 가리키는 메모리 주소와 그 실제값은 다음과 같습니다.

Variable Address Value
$i$ 100 5
$pi$ 104 100
$ppi$ 108 104

각 notation의 의미와 그 notation이 가리키는 값은 다음과 같습니다.

Usage Meaning Value
$pi$ $i$의 주소 100
$*pi$ $i$의 실제값 5
$\&pi$ $pi$의 주소 104
$ppi$ $pi$의 주소 104
$*ppi$ $pi$의 실제값=$i$의 주소 100
$**ppi$ $i$의 실제값 5

Comments