인프런 커뮤니티 질문&답변

심야님의 프로필 이미지
심야

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

C언어 메모리 스페셜 (배열과 포인터)

메모리스페셜(배열과 포인터) 질문있습니다.

해결된 질문

작성

·

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번 붙여야하는 것입니다.

주말코딩님의 프로필 이미지
주말코딩
지식공유자

인프런 답변 UI가 이상해져서 중간에 구분선을 계속 넣었습니다. 개행 자체가 안되네요. 내일 인프런 측에 문의해보겠습니다.
심야님의 프로필 이미지
심야
질문자

이해했습니다 주소를 가져오고 가져온 주소의 값을 가져오기 위해 포인터를 두 번 사용하는 거군요 감사합니다!
주말코딩님의 프로필 이미지
주말코딩
지식공유자

네 감사합니다. 혹시 시간 여유가 되시면 수강평 하나 부탁드립니다..
심야님의 프로필 이미지
심야

작성한 질문수

질문하기