1권 p.89의 문제 3번입니다.
하단의 for문이
for(int i = 0; i < 5; i += 2)
sum += *(a + i);
printf("%d", sum);로 되어있는데 여기에서 *(a + i)를 수행할 때 포인터 변수로 선언된 변수가 없어도 자동으로 포인터 변수로 인식해서 작동이 되는건가요?? 궁금합니다ㅠㅠ
그리고 p.92의 1번 실행문 func(i,j)의 사용할 함수를 선언하는 부분에서 i,j를 int i, int j로 자료형을 써주지 않아도 똑같은 기능을 하는지도 궁금합니다~
안녕하세요 길벗수험서 운영팀입니다.
[89p]
배열 선언 시 배열명은 포인터 변수에 해당합니다. (별도의 포인터 변수 선언 불필요)
int a[5]; - 'a'는 'a[0]'을 가리키는 포인터 변수
[92p]
예, 동일하게 기능합니다.
사용자 정의 함수의 세부 코드들을 뒤에 적기 위해 앞에서 미리 '이러한 함수를 사용할 것이다'라고 선언해 주는 부분(프로토타입이라고 합니다)인데, 이 경우 뒤에서 자세하게 적힐 함수의 이름(func)과 매개변수의 개수만(i, j 이렇게 2개) 동일하게 써주면 됩니다.
( func(a,b); 이렇게 써줘도 잘 돌아갑니다. 매개변수의 개수만 정확하면 됩니다.)
다만 코드 작성자 외의 다른 사람들이 코드를 볼 때 이해하기 쉽도록 가능한 동일한 매개변수 이름과 자료형까지 써주는 것이 좋습니다.
행복한 하루되세요 :)
-
관리자2020-04-16 21:14:12
안녕하세요 길벗수험서 운영팀입니다.
[89p]
배열 선언 시 배열명은 포인터 변수에 해당합니다. (별도의 포인터 변수 선언 불필요)
int a[5]; - 'a'는 'a[0]'을 가리키는 포인터 변수
[92p]
예, 동일하게 기능합니다.
사용자 정의 함수의 세부 코드들을 뒤에 적기 위해 앞에서 미리 '이러한 함수를 사용할 것이다'라고 선언해 주는 부분(프로토타입이라고 합니다)인데, 이 경우 뒤에서 자세하게 적힐 함수의 이름(func)과 매개변수의 개수만(i, j 이렇게 2개) 동일하게 써주면 됩니다.
( func(a,b); 이렇게 써줘도 잘 돌아갑니다. 매개변수의 개수만 정확하면 됩니다.)
다만 코드 작성자 외의 다른 사람들이 코드를 볼 때 이해하기 쉽도록 가능한 동일한 매개변수 이름과 자료형까지 써주는 것이 좋습니다.
행복한 하루되세요 :)