Certificate/정보처리기사 실기

정처기 모의고사 01회 6번 - C언어

웨일파도 2024. 4. 9. 14:09
반응형
#include <stdio.h>

int add(int i, int j) {
	return i+j;
}

int sub(int i, int j) {
	return i-j;
}

void main() {
	int (*pf)(int, int);
	
	pf = add;
	printf("%d", pf(5,4));
	
	pf = sub;
	printf("%d", pf(5,4));
}

 

이 C 프로그램은 포인터를 함수에 사용하여 add 함수와 sub 함수를 호출하는 예입니다. 이를 통해 두 수의 합과 차를 계산합니다. 함수 포인터 pf는 두 정수를 매개변수로 받고 정수를 반환하는 함수를 가리킬 수 있습니다. 프로그램의 흐름은 다음과 같습니다:

  1. 함수 포인터 pf를 선언합니다. 이 포인터는 두 개의 int 매개변수를 받고 int를 반환하는 함수를 가리킬 수 있습니다.
  2. pf에 add 함수의 주소를 할당하고, 이를 사용하여 5와 4의 합을 계산한 뒤 출력합니다.
  3. pf에 sub 함수의 주소를 할당하고, 이를 사용하여 5에서 4를 뺀 값을 계산한 뒤 출력합니다.

출력 결과를 살펴보면:

  • 첫 번째 호출에서는 add(5, 4)를 수행하므로, 9가 출력됩니다.
  • 두 번째 호출에서는 sub(5, 4)를 수행하므로, 1이 출력됩니다.

따라서, 이 프로그램의 출력 결과는 9와 1입니다. 그러나 출력 사이에 줄바꿈이 없기 때문에 실제 출력은 91로 나타날 것입니다.

 

이해를 돕기 위한 추가 설명:

  • 함수 포인터는 특정 타입의 함수만 가리킬 수 있습니다. 이 예에서는 두 개의 int 매개변수를 받고 int를 반환하는 함수를 가리킵니다.
  • printf 함수는 stdio.h 헤더 파일에 정의된 표준 출력 함수로, 문자열 형식에 따라 변수를 출력합니다. 이 경우 %d 형식 지정자를 사용하여 정수를 출력합니다.
반응형