C/C++函数指针和函数指针数组的定义及用法
程序员文章站
2024-03-26 09:36:11
...
/*-------------------------------------------------------
功能:函数指针和函数指针数组的定义及用法
输入示例:
Input 2 numbers & 1 operator(0-max, 1-min, 2-sum): 1 9 2
输出示例:
10
---------------------------------------------------------
Author: Zhang Kaizhou
Date: 2019-4-3 10:21:45
--------------------------------------------------------*/
#include <iostream>
using namespace std;
int compute(int a, int b, int (* func)(int a, int b));
int max(int a, int b);
int min(int a, int b);
int sum(int a, int b);
int main(){
int a, b, oper;
cout << "Input 2 numbers & 1 operator(0-max, 1-min, 2-sum): ";
cin >> a >> b >> oper;
int (* pFunc[3])(int a, int b); // 定义一个长度为3的函数指针数组
pFunc[0] = max;
pFunc[1] = min;
pFunc[2] = sum;
cout << compute(a, b, pFunc[oper]) << endl;
return 0;
}
int compute(int a, int b, int (* func)(int a, int b)){ // 函数指针的定义语法为:返回值类型 (* 函数名)(形参列表)
return func(a, b);
}
int max(int a, int b){
return a >= b ? a : b;
}
int min(int a, int b){
return a <= b ? a : b;
}
int sum(int a, int b){
return a + b;
}