//函数指针
/*#include<stdio.h>
void f(void)
{
printf("in f()
");
}
int main(void)
{
int i=0;
int *p=&i;
*p=20;//运用指针修改i的值
void (*pf)(void) = f; //指针函数
f(); //int f()
(*pf)(); //int f()
return 0;
}
*/
/*
#include<stdio.h>
void f(int i)
{
printf("int f(),%d
",i);
}
void g(int i)
{
printf("int g(),%d
",i);
}
void h(int i)
{
printf("int h(),%d
",i);
}
void k(int i)
{
printf("int k(),%d
",i);
}
int main(void)
{
int i=0;
scanf("%d",&i);
if(i==0) //方一
{
f(0);
}else if(i==1)
{
g(0);
}
switch(i) //方二
{
case 0:f(0);break;
case 1:g(o);break;
case 2:h(0);break;
}
void (*fa[])(int)={f,g,h,k};
if(i>=0&&i<sizeof(fa)/sizeof(fa[0]))
{
(*fa[i])(0);
}//一般用于根据用户输入来判断做什么事
return 0;
}
*/
//来的实的
#include<stdio.h>
int plus(int a,int b)
{
return a+b;
}
int minus(int a,int b)
{
return a-b;
}
void cal(int (*f)(int,int))
{
printf("%d
",(*f)(2,3));
}
int main(void)
{
cal(plus);
cal(minus);
return 0;
}