책 내용 질문하기
2022 정보처리기사 2회 필기 79번 문제
도서
2022 시나공 정보처리기사 필기
페이지
0
조회수
327
작성일
2022-07-19
작성자
탈퇴*원
첨부파일

 

 

 

필기 문제인데.. 사실 전 이거를 맞혔었거든요

 

다시 보는 중에 이해가 잘 안가서요!

 

두번째 printf 출력값으로 14가 나올 수 없는 이유가 뭘까요?ㅠ 14가 나오려면 a[0]으로 설정해야돼서 그런건가요?

 

저기서 a가 값으로 나오려면 *a 라고 써야만 14로 나오는 건가요?

답변
2022-07-19 21:06:23

안녕하세요 길벗수험서 운영팀입니다.

 

먼저 a[2]의 값과 *a가 어떤 값을 가리키는지 파악하세요.

 

a[2]는 3번째 값인 30을

*a의 배열명 a의 배열의 첫번째 값의 주소를 가리키므로 1번째 값인 14를 가리키게 됩니다.

 

문제에서 a[0]의 주소값을 10이라고 하였고, int를 4Byte로 가정하였으므로,

a[2]는 3번째 값으로 a[0]인 첫번째 값에서 2번 이동해야 하므로 2*4Byte인 8만큼 주소가 이동하게 되어 18이 주소가 됩니다.

 

두 번째 출력은 a는 &a[0]과 같고, *a는 a[0]과 같다는 점으로 봤을 때 a[0]의 주소값인 10이 그대로 출력되게 되어,

결과는 18, 10이 됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2022-07-19 21:06:23

    안녕하세요 길벗수험서 운영팀입니다.

     

    먼저 a[2]의 값과 *a가 어떤 값을 가리키는지 파악하세요.

     

    a[2]는 3번째 값인 30을

    *a의 배열명 a의 배열의 첫번째 값의 주소를 가리키므로 1번째 값인 14를 가리키게 됩니다.

     

    문제에서 a[0]의 주소값을 10이라고 하였고, int를 4Byte로 가정하였으므로,

    a[2]는 3번째 값으로 a[0]인 첫번째 값에서 2번 이동해야 하므로 2*4Byte인 8만큼 주소가 이동하게 되어 18이 주소가 됩니다.

     

    두 번째 출력은 a는 &a[0]과 같고, *a는 a[0]과 같다는 점으로 봤을 때 a[0]의 주소값인 10이 그대로 출력되게 되어,

    결과는 18, 10이 됩니다.

     

    행복한 하루되세요 :)

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