C 언어에서 함수 호출 시 매개변수 전달 방법에는 값에 의한 호출(Call by Value)과 참조에 의한 호출(Call by Reference)이 있다. C 프로그램 코드가 다음과 같을 때 설명으로 옳지 않은 것은?
int get_average(int score[], int n) {
int i, sum;
for(i = 0; i < n; i++)
sum += score[i];
return sum / n;
}
void main(void) {
int score[3] = { 1, 2, 5 };
printf(“%d\n”, get_average(score, 3));
} - ①전달할 데이터의 양이 많을 경우에는 참조에 의한 호출이 효율적이다.
- ②값에 의한 호출로 전달된 데이터는 호출된 함수에서 값을 변경하더라도 함수 종료 후 해당 함수를 호출한 상위 함수에 반영되지 않는다.
- ③값에 의한 호출은 함수 호출 시 데이터 복사가 발생한다.
- ④위의 프로그램에서 함수 get_average()를 호출하는 데 사용한 매개변수 score는 값에 의한 호출로 처리된다.
정답 ④
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)