책 내용 질문하기
1권 101쪽, 문제6번
도서
2021 시나공 정보처리산업기사 실기
페이지
101
조회수
250
작성일
2021-09-29
작성자
탈퇴*원
첨부파일
다른 것은 다 이해했는데 func(a+2)가 이해가 안갑니다 해설(p.495)에 의하면 func(a+2)가 정수형포인터 변수p는 a배열에서 정수형으로 두 번지 증가한 a[2]의 주소(&a[2]), 즉 1008번을 받는다/ 까지는 이해가 갑니다. 근데 그 뒤에 즉 p에 a배열의 세 번째 요소의 주소가 저장되었으므로 a배열의 세 번째 요소부터를 p배열의 첫 번째 요소로 시작하여 사용할 수 있다 라는 말의 의미를 모르겠습니다..
답변
2021-10-04 10:06:42

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

 

간단하게 생각해보세요.

 

처음 func(a)로 갔을 때는 주소 1000이 p로 넘어가 1000부터 있는 배열의 요소들을 사용할 수 있었습니다.

다음 func(a+2)로 갔을 때는 주소 1008이 p로 넘어가 1008부터 있는 배열의 요소들을 사용하므로,

p[0]이 a[2]에 저장된 3을 가리키게 되고,

p[1]이 a[3]을 

p[2]이 a[4]를 가리키게 되는 것이죠.

 

여기서 1008이 a배열의 세 번째 요소의 주소를 의미하고, 이곳의 위치가 p[0]이 가리키는 곳과 동일하다는 것을 의미합니다.

 

행복한 하루되세요 :)

  • 관리자
    2021-10-04 10:06:42

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

     

    간단하게 생각해보세요.

     

    처음 func(a)로 갔을 때는 주소 1000이 p로 넘어가 1000부터 있는 배열의 요소들을 사용할 수 있었습니다.

    다음 func(a+2)로 갔을 때는 주소 1008이 p로 넘어가 1008부터 있는 배열의 요소들을 사용하므로,

    p[0]이 a[2]에 저장된 3을 가리키게 되고,

    p[1]이 a[3]을 

    p[2]이 a[4]를 가리키게 되는 것이죠.

     

    여기서 1008이 a배열의 세 번째 요소의 주소를 의미하고, 이곳의 위치가 p[0]이 가리키는 곳과 동일하다는 것을 의미합니다.

     

    행복한 하루되세요 :)

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