[C/C++] 더블포인터(**)
1. 개념
리눅스 C언어 활용시 매우 많이 등장하는 개념으로, 반드시 기억하고 있어야 한다.
포인터가 변수의 메모리 주소를 저장한다면,
더블 포인터는 그 메모리 주소를 저장한 포인터의 메모리 주소를 저장한다.
2. 코드예시
#include <stdio.h>
int main()
{
int *numPtr1; // 단일 포인터 선언
int **numPtr2; // 이중 포인터 선언
int num1 = 10;
numPtr1 = &num1; // num1의 메모리 주소 저장
numPtr2 = &numPtr1; // numPtr1의 메모리 주소 저장
printf("%d\n", **numPtr2); // 20: 포인터를 두 번 역참조하여 num1의 메모리 주소에 접근
return 0;
}
위 코드를 통해 유의해야할 점은 다음과 같다.
- num1 변수에는 정수 변수를 담는다.
- 정수 변수를 담고 있는 num1 변수의 메모리 주소를 numPrt1 포인터에 저장한다.
- numPrt1 포인터의 메모리 주소를 저장한다.
- numPrt1은 메모리 주소를 담고 있는 포인터이므로, 이후 포인터들의 저장은 중복포인터로 저장한다.
3. 참조링크
https://dojang.io/mod/page/view.php?id=279
Author And Source
이 문제에 관하여([C/C++] 더블포인터(**)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gyrbs22/CC-더블포인터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)