이중포인터 설명

2019. 4. 9. 20:23개인공부/C언어 자료구조

 

▲ 이중포인터

포인터의 포인터 이중포인터입니다.

 

선언은 다음과 같이 합니다. *를 두번 씁니다

 



int** pp = &p; //declearing double pointer pp for p

 

다음과 같은 코드에서 값이 어떻게 나올까요...


	int var = 10; //declaring variable var, storing 10 in var 
	int* p = &var; //declareing pointer p for var
	int** pp = &p; //declearing double pointer pp for p

	printf("address of var = %x", &var);
	printf("\n");
	printf("value of p = %x", p);
	printf("\n");
	printf("address of p = %x", &p);
	printf("\n");
	printf("value of pp = %x", pp);
	printf("\n");
	printf("address of pp = %x", &pp);

 

 


---------------------------
address of var = 522ffcb4
value of p = 522ffcb4
address of p = 522ffcd8
value of pp = 522ffcd8
address of pp = 522ffcf8
---------------------------

변수 var의 주소와 포인터 p의 값이 같고

포인터 p의 주소와 이중포인터 pp의 값이 같은 것을 확인할 수 있습니다.

 

 


	printf("value of **pp = %x", **pp);
	printf("\n");
	printf("value of *p = %x", *p);

 

다음 코드의 값은 어떻게 나올까요?

 

 


10
10

 

예상대로인가요?