C語言-函式指標
阿新 • • 發佈:2019-01-03
1 函式指標
函式原型:
int sum(int a, int b);
函式指標:
int (*psum)(int,int)=sum;
通過函式指標呼叫函式:
int result=psum(20,30);
2 函式指標陣列
要宣告函式指標陣列,需要將陣列大小放在函式指標陣列名之後。
例子:
#include<stdion.h>
int sum(int,int);
int product(int,int);
int main(void)
{
int a=10;
int b=20;
int (*pfun[2])(int,int);
pfun[0 ]=sum;
pfun[1]=product;
printf("%d \n",pfun[0](a,b));
printf("%d \n",pfun[1](a,b));
return 0;
}
int sum(int a,int b)
{
return a+b;
}
int product(int a,int b)
{
return a*b;
}
//輸出結果
30
200
3 作為變元的函式指標
將函式指標作為變元來傳遞,可以根據指標所指向的函式,而呼叫不同的函式。
#include<stdion.h>
int sum(int,int );
int product(int,int);
int any_fun(int (*pfun)(int,int),int,int);
int main(void)
{
int a=10;
int b=20;
int result=0;
int (*pf[2])(int,int);
pf[0]=sum;
pf[1]=product;
printf("%d \n",any_fun(pf[0],a,b));
printf("%d \n",any_fun(pf[1],a,b));
return 0;
}
int sum(int a,int b)
{
return a+b;
}
int product(int a,int b)
{
return a*b;
}
int any_fun(int (*pfun)(int,int),int x,int y)
{
return pfun(x,y);
}
//輸出結果
30
200