&는 주소를 얻고, *는 주소를 따라가 값을 읽는다
같은 기호 *라도 선언에서는 포인터 타입, 식에서는 역참조라는 뜻으로 읽어야 합니다.
예시 코드가 만드는 상태
int num = 10;num이라는 칸에 값 10을 저장합니다.int* pNum;int 값을 가리킬 포인터 변수를 만듭니다.pNum = #num의 주소를 pNum에 저장합니다.*pNumpNum이 저장한 주소로 가서 num의 값을 읽습니다.표현과 의미
| 표현 | 의미 | 결과 관점 |
|---|---|---|
num | 변수 자체 | 저장된 값 10 |
&num | 주소 얻기 | num의 위치 |
pNum | 포인터 변수 | 주소를 값으로 보관 |
*pNum | 역참조 | 그 주소의 실제 값 |
포인터 타입은 주소 자체가 아니라 “그 주소를 어떤 타입의 값으로 해석할지”를 정합니다.