책 내용 질문하기
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]이 가리키는 곳과 동일하다는 것을 의미합니다.
행복한 하루되세요 :)