指向函数的指针的分析

来源:互联网 发布:windows surface pro 编辑:程序博客网 时间:2024/06/01 13:31

函数指针变量常用的用途之一是把指针作为参数传递到其他函数。熟练使用函数指针变量对于你对C语言的了解有很高的帮助。不过这属于C语言的应用中比较深入的部分,所以要多加分析和编程。

下面我举一个比较简单 的例子,设一个函数process,在调用他的时候,每次实现不一样的功能,输入a,b第一次调用process时找出a和b中大者,第二次找出小者,第三次求和。

程序如下:

#include<stdio.h>int main(){int max(int,int);//函数声明int min(int,int);int add(int,int);int a,b;printf("enter a and b:");scanf("%d,%d",&a,&b);printf("max=");process(a,b,max);printf("min");process(a,b,min);printf("sum=");process(a,b,add);}max(int x,int y)//函数定义{int z;if(x>y)z = x;elsereturn(z);}min(int x,int y)//函数定义{int z;if(x<y)z = x;elsereturn(z);}add(int x,int y)//函数定义{int z;z = x+y;return(z);}process(int x,int y,int(*fun)(int,int))//函数定义。int(*fun)(int,int)表示fun是指向函数的指针,该函数是一个整型函数,有两个整型形参{int result;result = (*fun)(x,y);printf("%d\n",result);}
运行结果:

enter a and b:2,6

max = 6

min = 2

sum = 8

从本例可以看出,不论调用 max,mi,add,函数process一点都没有改动,只是调用的时候将实参函数名改变而已。



原创粉丝点击