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

심야님의 프로필 이미지

작성한 질문수

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

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

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

해결된 질문

24.07.25 18:01 작성

·

94

0

이 문장이 이해가 안갑니다 ㅠㅠ
arr배열이 가리키는 주소가 가지고 있는 값은 12면서 + 1을 하기 때문에 13이 나오는 것은 알겠는데 **를 2개쓰는 이유를 모르겠어요

포인터 변수도 메모리 주소(a - 자기가 위치한 곳)를 가지고 있고, 가지고 있는 값(b - 내가 가리키고 있는 주소)가 있습니다.

여기서 arr은 a-자기가 위치한 곳을 가리킵니다. 그것의 값을 arr 가져오라고 하니 b-내가 가리키고 있는 주소를 가지고 오게 되고, 거기에 다시 *을 씌우니 12를 가지고 오게 됩니다. 거기에 1을 더하면 13이 되죠.

그래서 최종값은 24 + 13인 37이 됩니다.

답변 1

0

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

2024. 07. 25. 20:48

그림으로 직접 그려서 생각해보시는 것이 좋습니다.

 

지금 arr은 뭔가요?

 

첫번째를 가리키고 있는 포인터입니다. (배열 이름이기도 합니다.)

 

그 상태에서 *을 붙이면 첫번째 요소를 가져옵니다. 그것은 &a입니다.

 

a의 메모리 주소이죠.

여기에다가 다시 *을 붙여야 그 주소의 값을 가져옵니다.

 

그래서 *을 2번 붙여야하는 것입니다.

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

2024. 07. 25. 20:49

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

2024. 07. 25. 23:46

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

2024. 07. 25. 23:51

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

작성한 질문수

질문하기