34.10 포인터와 주소 연산자 사용하기
, 코 딩님이 작성#include <stdio.h>
int main()
{
int *numPtr1;
int **numPtr2;
int num1 = 10;
numPtr1 = &num1;
numPtr2 = &numPtr1;
printf("%d\n", **numPtr2);
return 0;
}
에서 numPtr2 = &numPtr1;이 궁금한데요 .
numPtr1은 이미 메모리주소인데 왜 앞에 &(주소 연산자)를 붙여줘야 하는건가요? &(주소 연산자)는 값의 메모리 주소를 할당하기 위해 쓰는 것이 아니였나요?
Re: 34.10 포인터와 주소 연산자 사용하기
, 도장_ 관리자님이 작성그림을 그려보세요. 그러면 이해하기 쉽습니다.
num1은 변수이므로 값이 저장되어 있지만, num1의 주솟값은 따로 있습니다.
numPtr1은 포인터이므로 값으로 주소를 저장하고 있습니다. num1의 주소를 저장하고 있습니다. 하지만, numPtr1 자체도 변수이므로 주솟값이 따로 있겠죠.
numPtr2도 마찬가지입니다.