반응형
#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는 두 정수를 매개변수로 받고 정수를 반환하는 함수를 가리킬 수 있습니다. 프로그램의 흐름은 다음과 같습니다:
- 함수 포인터 pf를 선언합니다. 이 포인터는 두 개의 int 매개변수를 받고 int를 반환하는 함수를 가리킬 수 있습니다.
- pf에 add 함수의 주소를 할당하고, 이를 사용하여 5와 4의 합을 계산한 뒤 출력합니다.
- pf에 sub 함수의 주소를 할당하고, 이를 사용하여 5에서 4를 뺀 값을 계산한 뒤 출력합니다.
출력 결과를 살펴보면:
- 첫 번째 호출에서는 add(5, 4)를 수행하므로, 9가 출력됩니다.
- 두 번째 호출에서는 sub(5, 4)를 수행하므로, 1이 출력됩니다.
따라서, 이 프로그램의 출력 결과는 9와 1입니다. 그러나 출력 사이에 줄바꿈이 없기 때문에 실제 출력은 91로 나타날 것입니다.
이해를 돕기 위한 추가 설명:
- 함수 포인터는 특정 타입의 함수만 가리킬 수 있습니다. 이 예에서는 두 개의 int 매개변수를 받고 int를 반환하는 함수를 가리킵니다.
- printf 함수는 stdio.h 헤더 파일에 정의된 표준 출력 함수로, 문자열 형식에 따라 변수를 출력합니다. 이 경우 %d 형식 지정자를 사용하여 정수를 출력합니다.
반응형
'Certificate > 정보처리기사 실기' 카테고리의 다른 글
정처기 실기 모의고사 3회 정리 (1) | 2024.04.12 |
---|---|
정처기 실기 모의고사 2회 정리 (1) | 2024.04.11 |
[개념] 애자일(Agile) (0) | 2024.04.04 |
2023년 3회 기출 08 - C언어 (0) | 2024.04.03 |
2023년 3회 기출 04 - C언어 (0) | 2024.04.03 |