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과 같다. 이건 삼중 포인터. 이런식으로 무한히 만들수 있다.
ㅜㅜ뭐라 어찌 감사하다는 말을 드려야할지
C++만 하다보니 멀록 보니깐 어섹하네...