책 내용 질문하기
86페이지 문제 3번 질문드립니다.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
86,87
조회수
194
작성일
2019-06-12
작성자
탈퇴*원
첨부파일

해설 7번을 보면 temp에 배열 st가 가리키는 곳의 주소에서 k만큼 증가한 주소가 가리키는 곳의 값(*(st+k))을 저장한다고 되어있는데 이 문장이 잘 이해가 되지 않습니다.

배열 st가 가리키는 곳의 주소를 어떻게 알 수 있나요?

답변
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]을 가리키는 것이 됩니다. 

 

행복한 하루되세요 :)

  • 관리자
    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]을 가리키는 것이 됩니다. 

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.