&는 주소를 얻고, *는 주소를 따라가 값을 읽는다

같은 기호 *라도 선언에서는 포인터 타입, 식에서는 역참조라는 뜻으로 읽어야 합니다.

예시 코드가 만드는 상태

int num = 10;num이라는 칸에 값 10을 저장합니다.
int* pNum;int 값을 가리킬 포인터 변수를 만듭니다.
pNum = #num의 주소를 pNum에 저장합니다.
*pNumpNum이 저장한 주소로 가서 num의 값을 읽습니다.

표현과 의미

표현의미결과 관점
num변수 자체저장된 값 10
&num주소 얻기num의 위치
pNum포인터 변수주소를 값으로 보관
*pNum역참조그 주소의 실제 값
포인터 타입은 주소 자체가 아니라 “그 주소를 어떤 타입의 값으로 해석할지”를 정합니다.