다음 코드를 작성하고 실행하면서 포인터의 포인터 개념을 익히세요.
pointer2_12.c
#include <stdio.h> main() { int a = 3; int *b = &a; // 포인터 변수 b int **c = &b; // 이중 포인터 변수 c, 포인터 변수 b의 주소 값을 이중 포인터 c에 저장 printf("정수형 변수 a의 값은 %d\n", a); printf("정수형 변수 a의 주소 값은 %d\n", &a); printf("정수형 포인터 변수 b의 값은 %d\n", b); printf("정수형 포인터 변수 b의 주소 값은 %d\n", &b); printf("정수형 포인터의 포인터 변수 c의 값은 %d\n", c); printf("정수형 포인터 변수 b의 역참조 값은 %d\n", *b); printf("정수형 포인터의 포인터 변수 c의 역참조 값은 %d\n", *c); printf("정수형 포인터의 포인터 변수 c의 역참조의 역참조 값은 %d\n", **c); }
실행 결과
정수형 변수 a의 값은 3
정수형 변수 a의 주소 값은 14482304
정수형 포인터 변수 b의 값은 14482304
정수형 포인터 변수 b의 주소 값은 14482292
정수형 포인터의 포인터 변수 c의 값은 14482292
정수형 포인터 변수 b의 역참조 값은 3
정수형 포인터의 포인터 변수 c의 역참조 값은 14482304
정수형 포인터의 포인터 변수 c의 역참조의 역참조 값은 3