三、函数指针的应用
函数指针经常被使用,但初学者或一般的开发者却很少使用。限于自身水平不高,小雅也只能很肤浅地、象征性地举例说明。
#include <stdio.h>
//申明一个函数指针的类型
typedef void (*pType) (int, int) ;
void max(int m, int n)
{
printf("最大值=[%d]\n", m>n ? m : n) ;
return ;
}
void min(int m, int n)
{
printf("最小值=[%d]\n", m<n ? m : n) ;
return ;
}
void fsq(int m, int n)
{
printf("平方和=[%d]\n", m * m + n * n) ;
return ;
}
//定义一个用函数指针做参数的函数
void process(int num1, int num2, pType pt) {
(*pt)(num1, num2);
}
int main(void)
{
int x, y, i ;
pType arr[] = {max, min, fsq}; //定义一个函数指针类型的数组
printf("请输入x和y的值:");
scanf("%d,%d", &x, &y) ;
//用法一
process(x, y, max); //将函数max的地址作实参数
process(x, y, min); //将函数min的地址作实参数
process(x, y, fsq); //将函数fsq的地址作实参数
printf("\n");
//用法二
for (i=0; i<3; i++) {
arr[i](x, y); //循环调用三个函数
}
return 0;
}
|