안녕하세요 길벗수험서 운영팀입니다.
사용자정의함수가 난립해 있는 코드의 경우 각 사용자정의함수의 기능들을 사전에 정의하고 코드를 분석해야 합니다.
main에서는 변수 a를 선언하면서 그 주소를 포인터 변수 result에 저장하고 result를 인수로 사용자정의함수 re를 호출합니다.
여기서 주소를 인수로 사용한다는 말은 리턴을 받지 않아도 해당 함수에서 변경된 변수의 값이 그대로 적용된다는 의미가 됩니다. 즉, re 함수에서 변수 r의 변화는 main 함수의 a에도 그대로 적용된다는 말이 되죠.
re에서는 i가 2~5동안 pn(i)를 호출하여 그 결과값을 r에 저장하는 역할을 수행합니다.
pn은 그러면 문제에서 구현하고자 하는 소수들의 합을 구하는 알고리즘이 되겠네요.
결과는 sum에 저장되고, 그 값이 리턴 되면 re 함수로 돌아가 r에 누적되게 됩니다.
(소수의 합 알고리즘은 교재 188~190쪽을 참고해주세요)
결과적으로, pn에서 2, 3, 4, 5에 대한 소수의 합을 구하고, 그것을 매번 return하여 re에 전달해주면 r에 누적한 후 re는 종료되게 됩니다. 이 값의 변동은 main 함수 a에도 영향을 끼쳐 출력하게 되면 re함수의 r값을 그대로 출력하게 되는 것이죠.
행복한 하루되세요 :)
-
관리자2019-10-14 10:49:57
안녕하세요 길벗수험서 운영팀입니다.
사용자정의함수가 난립해 있는 코드의 경우 각 사용자정의함수의 기능들을 사전에 정의하고 코드를 분석해야 합니다.
main에서는 변수 a를 선언하면서 그 주소를 포인터 변수 result에 저장하고 result를 인수로 사용자정의함수 re를 호출합니다.
여기서 주소를 인수로 사용한다는 말은 리턴을 받지 않아도 해당 함수에서 변경된 변수의 값이 그대로 적용된다는 의미가 됩니다. 즉, re 함수에서 변수 r의 변화는 main 함수의 a에도 그대로 적용된다는 말이 되죠.
re에서는 i가 2~5동안 pn(i)를 호출하여 그 결과값을 r에 저장하는 역할을 수행합니다.
pn은 그러면 문제에서 구현하고자 하는 소수들의 합을 구하는 알고리즘이 되겠네요.
결과는 sum에 저장되고, 그 값이 리턴 되면 re 함수로 돌아가 r에 누적되게 됩니다.
(소수의 합 알고리즘은 교재 188~190쪽을 참고해주세요)
결과적으로, pn에서 2, 3, 4, 5에 대한 소수의 합을 구하고, 그것을 매번 return하여 re에 전달해주면 r에 누적한 후 re는 종료되게 됩니다. 이 값의 변동은 main 함수 a에도 영향을 끼쳐 출력하게 되면 re함수의 r값을 그대로 출력하게 되는 것이죠.
행복한 하루되세요 :)