공부 기록

이중 포인터

solfa 2022. 7. 20. 20:32
#include <stdio.h>

int main()
{
	int num = 10;
	int *ptr;
	int **pptr;

	ptr = &num;
	pptr = &ptr;

	printf("num : %d, *ptr : %d, **ptr : %d\n", num, *ptr, **pptr);
    // num 변수 10, *붙인 포인터는 주소값 아니고 그냥 변수!, 이중포인터는 변수를 찾아감!
	printf("num 주소 : %d, ptr 값 : %d, **ptr 값 : %d\n", &num, ptr, *pptr);
    // & 붙였으니까 num의 주소값, 그냥 포인터는 주소값, 이중 포인터에 *하나는 그 포인터가 가리키고 있는 값! 결국 pptr = &ptr; 이거임
	printf("ptr 주소 : %d, pptr 값 : %d", &ptr, pptr);
    // ptr의 주소(10의 주소값이 아니라 10을 넣은 ptr의 주소이므로 위 주소값과 다름, pptr = &ptr; 이므로 ptr의 주소값

	return 0;
}

두 번째 *pptr이랑 세 번째 pptr이 뭐가 다른지 모르겠음

728x90