이중포인터 설명
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
예상대로인가요?
'개인공부 > C언어 자료구조' 카테고리의 다른 글
연결리스트로 스택 구현 (2) | 2019.04.14 |
---|---|
C언어 연결 리스트 (0) | 2019.04.14 |
[C언어 자료구조]자체 참조 구조체 (0) | 2019.04.14 |
[C언어 자료구조] 헷갈리는 포인터연산 (0) | 2019.04.14 |
C언어 동적 메모리 할당[Dynamic memory allocation] (0) | 2019.04.11 |