#include <stdio.h>
//函数指针:指向函数的指针
int square(int);
int square(int num){
return num * num;
}
int main(){
int num;
int (*fp)(int);
printf("请输入一个整数:");
scanf("%d",&num);
fp = square;
printf("%d x %d = %d\n", num, num ,(*fp)(num)) ;
return0;
}
输入:6
输出:
请输入一个整数:6
6 x 6 = 36
#include <stdio.h>int add(int, int);
intsub(int, int);int calc(int (*fp)(int, int), int ,int);
int (*select(char))(int, int);//返回值为带两个参数的函数指针 (*)(intint)
int add(intx, inty){
returnx + y;
}
intsub(int x, int y){returnx - y;
}
int calc(int (*fp)(int, int), intx, inty){
return (*fp)(x, y);
}
int (*select(char op))(int, int ){
switch(op){
case '+' : return add;
case '-' : returnsub;
}
}
int main(){
intx,y;
char op;
int (*fp)(int, int);
printf("请入一个式子:如1+3:");
scanf("%d%c%d", &x, &op, &y);
fp = select(op);
printf("%d%c%d = %d", x, op, y, calc(fp,x,y));
return0;
}