[9급 국가직 컴퓨터일반 2022년 6번]

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)); 
} 
컴퓨터일반
  1. 전달할 데이터의 양이 많을 경우에는 참조에 의한 호출이 효율적이다.
  2. 값에 의한 호출로 전달된 데이터는 호출된 함수에서 값을 변경하더라도 함수 종료 후 해당 함수를 호출한 상위 함수에 반영되지 않는다.
  3. 값에 의한 호출은 함수 호출 시 데이터 복사가 발생한다.
  4. 위의 프로그램에서 함수 get_average()를 호출하는 데 사용한 매개변수 score는 값에 의한 호출로 처리된다.
정답 ④

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)