1. 程式人生 > >函數指針及其應用

函數指針及其應用

tdi else case sca stdio.h clu 根據 什麽 return

//函數指針
/*#include<stdio.h>

void f(void)
{
printf("in f()\n");
}

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\n",i);
}

void g(int i)
{
printf("int g(),%d\n",i);
}

void h(int i)
{
printf("int h(),%d\n",i);
}

void k(int i)
{
printf("int k(),%d\n",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\n",(*f)(2,3));
}

int main(void)
{
cal(plus);
cal(minus);

return 0;
}

函數指針及其應用