함수 포인터에 함수의 시작주소를 다르게 저장하기
소스코드
#include <stdio.h>
void add(int num1, int num2); void subtract(int num1, int num2);
int main() { int x, z; char c; // 함수
포인터
선언 void (*pointer)(int, int);
printf("add 함수의
주소 : %d \n", add); // add 함수의
주소 printf("subtract 함수의
주소 : %d \n", subtract); // subtract 함수의
주소 printf("입력 > ");
fflush(stdout); scanf("%d %c %d", &x, &c, &z);
if(c=='+') pointer=add;
else if(c=='-') pointer=subtract;
else printf("두
번째
입력값은
연산자로 '+' 또는 '-'를
입력하세요(ex> 7+3).\n");
pointer(x, z);
return 0; }
void add(int num1, int num2) { int result; result=num1+num2; printf("%d + %d = %d\n", num1, num2, result); }
void subtract(int num1, int num2) { int result; result=num1-num2; printf("%d - %d = %d\n", num1, num2, result); } |
메모리 구조 및 출력결과
if(c=='+')
pointer=add; | else if(c=='-')
pointer=subtract; |
|
|

| 
|