해설 7번을 보면 temp에 배열 st가 가리키는 곳의 주소에서 k만큼 증가한 주소가 가리키는 곳의 값(*(st+k))을 저장한다고 되어있는데 이 문장이 잘 이해가 되지 않습니다.
배열 st가 가리키는 곳의 주소를 어떻게 알 수 있나요?
안녕하세요 길벗수험서 운영팀입니다.
배열 char st[]는 st[0]부터 st[8]까지 총 9개의 요소를 갖는 배열입니다.
여기서 배열 st에서 배열명 'st'는 st[0]의 주소와 같습니다.
즉, st == &st[0] 이라는 의미죠.
따라서 (st+k)라는 것은 st[0]의 주소에서 k번 만큼의 다음 요소를 가리키는 '주소'를 의미하며, 해당 주소가 가진 값을 나타내기 위해 *(st+k)를 사용한 것입니다.
바꿔말하면
*(&st[0]+k)가 될수도 있고, k에 값을 대입해보면
*(st+0) = st[0]을
*(st+1) = st[1]을
*(st+2) = st[2]을 가리키는 것이 됩니다.
행복한 하루되세요 :)
-
관리자2019-06-13 11:47:13
안녕하세요 길벗수험서 운영팀입니다.
배열 char st[]는 st[0]부터 st[8]까지 총 9개의 요소를 갖는 배열입니다.
여기서 배열 st에서 배열명 'st'는 st[0]의 주소와 같습니다.
즉, st == &st[0] 이라는 의미죠.
따라서 (st+k)라는 것은 st[0]의 주소에서 k번 만큼의 다음 요소를 가리키는 '주소'를 의미하며, 해당 주소가 가진 값을 나타내기 위해 *(st+k)를 사용한 것입니다.
바꿔말하면
*(&st[0]+k)가 될수도 있고, k에 값을 대입해보면
*(st+0) = st[0]을
*(st+1) = st[1]을
*(st+2) = st[2]을 가리키는 것이 됩니다.
행복한 하루되세요 :)