三、函数指针的应用
函数指针经常被使用,但初学者或一般的开发者却很少使用。限于自身水平不高,小雅也只能很肤浅地、象征性地举例说明。
- #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;
- }
|