指针指向函数可以干什么
include<stdio.h>
int SUM(int a,int b)
{
return a+b;
int MUL(int a,int b)
{
return a*b;
}
int DIV(int a,int b)
{
return a/b;
}
main()
{
int *p(int,int)= &Sum ;
p=SUM;
printf("%d\n",p(123,456));
p=MUL;
printf("%d\n",p(123,456));
p=DIV
printf("%d\n",p(123,456));
}//使用同一个调用语句来实现不同函数调用
回调函数,函数指针作为函数的参数传递
#include<stdlib.h>
int SUM(int a, int b)
{
return a + b;
}
int SUB(int a, int b)
{
return a - b;
}
int MUL(int a, int b)
{
return a * b;
}
int DIV(int a, int b)
{
return a / b;
}
int calculate(int(*p)(int, int), int a, int b)
{
return p(a , b);
}
int main()
{
printf("%d",calculate(SUM, 123, 456));//把函数作为参数传递
return 0;
}
可以这样来设计一个简易的计算器
使用typedef给函数指针取别名
typedef int *funp(int,int)= &Sum ;
funp p= &Sum ;