해결된 질문
작성
·
152
0
이 문장이 이해가 안갑니다 ㅠㅠ
arr배열이 가리키는 주소가 가지고 있는 값은 12면서 + 1을 하기 때문에 13이 나오는 것은 알겠는데 **를 2개쓰는 이유를 모르겠어요
포인터 변수도 메모리 주소(a - 자기가 위치한 곳)를 가지고 있고, 가지고 있는 값(b - 내가 가리키고 있는 주소)가 있습니다.
여기서 arr은 a-자기가 위치한 곳을 가리킵니다. 그것의 값을 arr 가져오라고 하니 b-내가 가리키고 있는 주소를 가지고 오게 되고, 거기에 다시 *을 씌우니 12를 가지고 오게 됩니다. 거기에 1을 더하면 13이 되죠.
그래서 최종값은 24 + 13인 37이 됩니다.
답변 1
0
그림으로 직접 그려서 생각해보시는 것이 좋습니다.
지금 arr은 뭔가요?
첫번째를 가리키고 있는 포인터입니다. (배열 이름이기도 합니다.)
그 상태에서 *을 붙이면 첫번째 요소를 가져옵니다. 그것은 &a
입니다.
a의 메모리 주소이죠.
여기에다가 다시 *을 붙여야 그 주소의 값을 가져옵니다.
그래서 *을 2번 붙여야하는 것입니다.