다음 C 프로그램의 함수 호출과 인수 전달에 대한 설명으로 옳지 않은 것은?
#include <stdio.h>
double get_average(const int score[], int count) {
int sum = 0;
for (int i = 0; i < count; i++) sum += score[i];
return (double)sum / count;
}
int main(void) {
int score[] = {80, 90, 100};
printf("%.1f\n", get_average(score, 3));
return 0;
}정답 4번
C에서 함수 인수는 값으로 전달된다. 배열 이름 score는 호출식에서 첫 원소를 가리키는 포인터로 변환되므로, 함수에 전달되는 것은 배열 전체의 복사본이 아니라 주소값이다. 매개변수 선언 const int score[]는 const int *score로 조정된다. 이 포인터를 통해 호출자의 배열 원소를 읽으므로 get_average(score, 3)의 결과는 (80+90+100)/3=90.0이다. 따라서 배열 원소 전체가 매개변수 공간으로 복사된다는 ④가 틀리다.
콘텐츠 정보
- 자료 유형
- 공개 기출
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-09-17