一般的形式为: func(T (*func)(V args))
使用的时候,直接使用对应参数类型的函数名即可
函数的名字就是指向内存函数开始执行时的指针,因此可以直接进行赋值
通过传入不同函数作为参数,可以调用不同函数实现不同的功能
#include <stdio.h>
int select_max(int numArray[10]){
int iMax = numArray[0];
int i = 0;
for(i=0;i<10;i++){
if(iMax<numArray[i]){
iMax = numArray[i];
}
}
return iMax;
}
int select_min(int numArray[10]){
int iMin = numArray[0];
int i = 0;
for(i=0;i<10;i++){
if(iMin>numArray[i]){
iMin = numArray[i];
}
}
return iMin;
}
int select(int numArray[10],int (*func)(int[])){
return func(numArray);
}
int main(){
int array[10] = {1,3,2,4,0,9,8,5,6,7};
printf("max number of array is :%d\n",select(array,select_max));
printf("min number of array is :%d\n",select(array,select_min));
return 0;
}