주소값의 이해
데이터의 주소값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미한다.

C언어에서는 이러한 주소값을 1바이트 크기의 메모리 공간으로 나누어 표현한다.
예를 들어, int형 데이터는 4바이트의 크기를 가지지만, int형 데이터의 주소값은 시작 주소 1바이트만을 가리킨다.

포인터란?
포인터(pointer)는 프로그래밍 언어에서 변수의 메모리 공간의 주소를 가리키는 변수를 말한다. 포인터가 가리키는 값을 가져오는 것을 역참조라고 한다.
char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장한다.
일반적으로 포인터는 메모리 주소로 바꿀 수 있다. 포인터는 다른 변수나 함수를 가리키도록 사용된다.
이미 했던 행동을 반복한다는 것은 상당히 비효율적인 일이다. 이것은 컴퓨터에서도 마찬가지인데, 수행한 함수를 반복 수행하기 위해서 함수를 선언하고, 돌릴 필요 없이 메모리 주소를 가리키면서 “이 함수를 수행해.” 라고 하면 된다.
→ 이것이 바로 포인터가 필요한 이유이다.
int n = 100; // 변수의 선언
int *ptr = &n; // 포인터의 선언

포인터 타입