&는 주소를 만들고 *는 저장된 주소를 따라간다

포인터 코드는 값 칸과 주소 칸을 구분해서 읽어야 합니다. 같은 기호라도 선언과 식에서 의미가 달라집니다.

int value = 7;
int* p = &value;
*p = 9;
변수 value0x1000
처음 값 7
역참조 대입 뒤 값 9
포인터 p0x2000
p 자신의 값은 0x1000
즉 value의 위치를 저장한다.
읽는 위치
결과
&value
value 칸의 주소표를 읽는다.
0x1000 같은 주소값이 나온다.
*p
p 안에 저장된 주소 0x1000을 따라간다.
도착한 value 칸의 실제 값을 읽거나 바꾼다.