상세 컨텐츠

본문 제목

C 언어 이중포인터에 대해

컴퓨터 관련

by 열정과 함께 2013. 9. 23. 18:55

본문

이중포인터 개념이 하도 헷갈려서 이렇게 남겨 본다.


a, pa, ppa 식으로 나가는 이중포인터에 대해.


이와 같은 방식으로 삼중, 사중 포인터도 생각해 보면 될 듯?


int a

int *pa

int **ppa 의 포인터에 대해

pa = &a

ppa = &pa

즉, pa 는 int 형 변수 a 가 있는 장소

ppa 는 int* 형 변수 pa 가 있는 장소.

따라서

a = *pa = **ppa

pa = &a

ppa = &pa


* 기호가 단독으로 쓰였을 때, 해당 위치에 저장된 값(주소값이 저장되어 있음)의 위치가 의미하는 기호라면

*(pa) 는 pa  에 할당된 위치에 저장된 주소값, 그리고 그 주소값의 위치에 저장된 변수는 바로 a

*(ppa) 는 ppa 에 할당된 위치에 저장된 주소값, 그리고 그 주소값의 위치에 저장된 변수는 pa

따라서 *(*(ppa)) = *pa 가 되므로

a = *pa = **ppa

가 되는 것.



댓글 영역