포인터 읽기

포인터 표현식은 주소와 값을 번갈아 읽는다

선언의 별표, 주소 연산자, 역참조 연산자를 한 문장으로 섞지 말고 단계별로 나누면 의미가 또렷해집니다.

int* p &value *p
선언

p는 주소를 담는다

int* p는 int 값을 직접 담는 변수가 아니라 int 위치를 저장하는 변수입니다.

저장

&는 주소 생성

&num은 num 자체가 아니라 num이 놓인 메모리 위치를 가리킵니다.

접근

*는 따라가서 읽는다

*p는 p에 저장된 주소로 이동해 그곳의 int 값을 읽거나 바꿉니다.

01 · 선언 가리킬 타입을 정합니다.
02 · 초기화 주소 또는 nullptr을 넣습니다.
03 · 검사 널 여부를 먼저 봅니다.
04 · 역참조 주소를 따라 값을 씁니다.
읽는 순서

포인터 크기는 주소 크기로 같을 수 있지만, 역참조할 때 읽는 바이트 수는 포인터가 가리키는 타입이 결정합니다.