指向函数的指针
例如:int (*f)();
注意:f两侧的括号是必需的,表示f先与结合,是一个指针变量,然后与随后的()结合,表示指针变量f指向函数。*
给出一位数组的元素值,自定义process函数,用于分别求出数组元素中的最大值、最小值和数组中各元素之和。
#include<iostream>
using namespace std;
int max(int arr[], int n);
int min(int arr[], int n);
int sum(int arr[], int n);
void process (int *p, int n, int (*p1)(int arr[], int n));
int main()
{
int a[4]={10,8,12,9};
int n=4;
cout<<"The max=";
process(a,n,max);
cout<<"The min=";
process(a,n,min);
cout<<"The sum=";
process(a,n,sum);
return 0;
}
int max(int arr[], int n)
{
int max1=arr[0];
for (int i=1;i<n;i++)
if (arr[i]>max1)
max1=arr[i];
return max1;
}
int min(int arr[], int n)
{
int min1=arr[0];
for (int i=1;i<n;i++)
if (arr[i]<min1)
min1=arr[i];
return min1;
}
int sum(int arr[], int n)
{
int sum1=0;
for (int i=0;i<n;i++)
sum1+=arr[i];
return sum1;
}
void process (int *p, int n, int (*p1)(int arr[], int n))
{
int result;
result=(*p1)(p,n);
cout<<result<<endl;
}