欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}