int* <- 타입이고 이름이 포괄적으로 "포인터"다 이건 정확히는 "int를 가리키는 포인터" 타입이다


우리는 int a; 같은 게 있을 때 "a는 int다" 라고 한다. 타입이라는 건 일종의 유형, 특성이니 그렇게 부른다.

마찬가지로 int *b; 같은 게 있을 때 "b는 포인터다/int를 가리키는 포인터다" 라고 한다.


0x0000같은 값 <- 주소다


int a=10; int* aptr=&a; <- aptr은 a의 주소를 담고 있는 포인터(형) 변수다.


int a; <- 스택에 저장되고 중괄호 블록을 빠져나가거나 함수 리턴할때 소멸된다.

int *a=malloc(sizeof(int)); <- 힙에 저장되고 중괄호 빠지거나 함수 리턴해도 안없어진다. free 함수로 따로 소멸시켜줘야 한다.

int** aptrptr = &aptr; <- 결국 aptr도 변수이기에 주소를 얻을 수 있고 그 주소의 타입은 포인터를 가라키는 포인터 (이중 포인터)다
int*** aptrptrptr = &aptrptr; <- &&&a, &&aptr, &aptrptr과 같다. 이건 삼중 포인터. 이런식으로 무한히 만들수 있다.