C언어 독학 이중 포인터
C언어 알고리즘
2015. 9. 12. 00:20
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언어의 이중 포인터의 기본 개념을 정리해봤습니다.