PROGRAMMING LANGUAGE/C

18강 다중포인터

JC0 2021. 9. 16. 15:57
#include <stdio.h>

int main()
{
	int data = 5;
	int* p_data = &data;
	int** pp_data = &p_data;
	int*** ppp_data = &pp_data;

	***ppp_data = 3;
	printf("data = %d\n", data);
	
	return 0;
}

int 타입 data 변수에 5를 대입하고 1단계 포인터 p_data에 data의 주소값을 대입한다.

2단계 포인터 pp_data에 p_data의 주소값을 대입한다.

3단계 포인터 ppp_data에 pp_data의 주소값을 대입한다.

***ppp_data = 3; 이 부분은 ppp_data를 3번 역참조하라는 코드이다. ppp_data가 가리키는 주소값으로 간  후에

pp_data -> p_data-> data 변수에 가서 변수의 값을 3으로 바꾸고 출력한다.