学点 C 语言(38): 函数 - 函数指针
先复习函数的定义与函数的声明:
//这是一个求和函数的定义:
int add(int x, int y)
{
return(x + y);
}
//可以这样声明:
int add(int x, int y);
//也可以这样声明:
int add(int, int);
定义一个函数指针声明一个函数差不多, 用 (* ) 包括函数即可:
//像这样:
int (*pfun)(int, int);
//或这样:
int (*pfun)(int x, int y);
//也可以:
typedef int (*pfun)(int, int);
//这就声明了一个叫 pfun 的函数指针, 能被它指向的函数一定要有相同的参数格式.
1. 简单例子:
#include
int add(int x, int y) {return(x + y);}
int sub(int x, int y) {return(x - y);}
int mul(int x, int y) {return(x * y);}
int div(int x, int y) {return(x / y);}
int main(void)
{
int (*pf)(int, int);
pf = add;
printf("%dn", pf(9, 3)); /* 12 */
pf = sub;
printf("%dn", pf(9, 3)); /* 6 */
pf = mul;
printf("%dn", pf(9, 3)); /* 27 */
pf = div;
printf("%dn", pf(9, 3)); /* 3 */
getchar();
return 0;
}