C언어 독학 이중 포인터

C언어 독학 이중 포인터


포인터란 어떤 변수의 메모리상의 주소값을

저장하는 변수입니다. 그리고 포인터 자체도

변수이기 때문에 메모리에 자리를 잡게 되고

이 녀석도 자기의 주소값을 갖게 됩니다.


 

그렇기 때문에 포인터 변수를 대상으로

'&'연산이 가능하며 반환되는 이 녀석의 주소

값을받아서 저장할 수 있는 것을

이중 포이터라고 합니다.

즉, 포인터 변수를 가리키는 또 다른

포인터인데요. 선언하는 형식은 다음과 같습니다.


int **aaa= &포인터변수;


*연산자를 두 개 입력하면 되는데 예제에서 작성해보겠습니다.

int형 변수 su를 10으로 초기화하고 이 변수의

주소를 poi에 저장하고 있습니다. 그리고 다시

poi의 주소를 dpoi에 저장하고 있는 모습인

이중 포인터 공부하시면 싱글 포인터는

이미 보셨을 테니까 su, *poi, **dpoi가

가리키는 값은 10으로 같다는 걸 아실 겁니다.

직접 값들을 출력해서 확인해볼게요.


 


세 개의 값이 모두 같은 걸 확인할 수 있습니다. 


그렇다면 값의 변경도 가능할까요?

예제를 살짝 변경해보겠습니다.

imsi 포인터 변수를 하나 선언하고 그곳에

dpoi가 가리키고 있는 poi의 주소값을 대입

하고 있습니다. 그리고 *imsi의 값에 20을

대입하고 있는데요. 이 20이라는 숫자는 su에

저장이 되겠죠? 즉, su, *poi, **dpoi, *imsi의

모든 값이 20으로 바뀌게 될 것입니다.

확인해보고 마무리할게요.^^


이렇게 해서 C언어의 이중 포인터의 기본 개념을 정리해봤습니다.

Leave a comment
Your name *
Your PassWord *
Comment *
COMMENT