변수의 <메모리 주소>를 저장하는 변수
//
ex)
int i = 1;
int *ptr = &i;
뜻: int형 포인터 ptr은 i의 주소값을 가진다
여기서의 *는 포인터 변수를 선언할 때 쓴 것(새 포인터 변수를 선언할 때만 이렇게 씀)
//
ex)
위에 이어서
int i2 = *ptr;
뜻: i2는 ptr이 가리키는 주소의 변수 값을 가진다
여기서의 *는 ptr(주소)이 아닌 ptr이 가리키는 변수 i의 값을 가져오기 위해 쓴 것
//
ex)
위에 이어서
*ptr = 2;
뜻: ptr이 가리키는 변수 i의 값에 2를 대입한다
i = 2; 와 같다
*ptr은 i와 같다는 것
//
ex)
위에 이어서
int **ptr_ptr = &ptr_i;
뜻: ptr의 주소를 가리키는 변수 ptr_ptr
> ptr은 i의 주소를 가리킴
> ptr_ptr은 ptr의 주소를 가리킴
> *ptr_ptr은 i의 주소를 가리킴
> **ptr_ptr은 i를 가리킴