[C/C++] 포인터 - *&

Hyo Kyun Lee·2022년 12월 30일
0

C/C++

목록 보기
23/23

1. *&

포인터변수 pt가 있을때,

&pt -> 해당 포인터 변수의 주소값을 가르킨다.
*pt -> 해당 포인터 변수가 가르키는 주소값의 실제값을 가져온다.

*&pt -> 해당 포인터 변수의 주소값이 가르키는 주소값의 실제값을 가져온다.

이렇게 보면 좀 어려운데, 일단 실행결과를 보면 *&pt는 포인터 변수가 가르키는 변수 주소값을 나타낸다.

2. 실행결과 살펴보기

#include <iostream>

int main() {
  std::cout << "Hello World!\n";

  int n = 4;
  int* pt = NULL;
  pt = &n;

  printf("%d\n", &n);
  printf("%d\n", *pt);
  printf("%d\n", *&pt);
  printf("%d\n", n);
  printf("%d\n", &n);
}

이론적으로는 이해가 좀 힘든데, 일단 *&pt는 포인터 변수가 가르키는 변수의 주소값이라는 사실을 기억하는게 좋을 것 같다.

이는 결국 포인터 변수 주소값이 가르키는 값은 변수의 주소값이란 소리인데, 포인터 변수 주소값이 가르키는 곳은 포인터 변수가 가르키는 곳과 동일하다는 의미라 봐도 될 것 같다.

3. 참고자료

*& 키워드 관련 - https://stackoverflow.com/questions/34505788/what-does-mean-in-c

0개의 댓글