이중 포인터


이중 포인터


이중 포인터, 이차 포인터, 더블 포인터

포인터 변수는 해당 주소 공간에 있는 값에 접근하기 위해 사용된다.

만약 접근한 주소 공간에 있는 값이 주소라면, 그 때 사용되는 것이 이중 포인터이다.

이중 포인터를 사용한다면,

이중포인터 변수 -> 포인터 변수 -> 값

이런 식으로 접근이 가능하다.


예시


int main()
{
	int a = 10;
	int* b = &a; //포인터
	int** c = &b; //이중 포인터

    //아래는 각각 같은 값을 나타낸 것끼리 묶어두었다.

	//a 값
	printf("a = %d\n", a);
	printf("*b = %d\n", *b);
	printf("**c = %d\n", **c);

	printf("\n\n");

	//a 주소
	printf("&a = %p\n", &a);
	printf("b = %p\n", b);
	printf("*c = %p\n", *c);

	printf("\n\n");

	//b 주소
	printf("&b = %p\n", &b);
	printf("c = %p\n", c);

	printf("\n\n");

	//c 주소
	printf("&c = %p\n", &c);

	return 0;
}