더북(TheBook)

다음 코드를 작성하고 실행하면서 포인터의 포인터 개념을 익히세요.

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

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.