当前位置:首页C++ > 正文

c++函数指针数组

作者:野牛程序员:2023-08-04 04:53:02C++阅读 2653

C++函数指针数组是一个包含函数指针的数组,其中每个元素都指向一个特定类型的函数。通过使用函数指针数组,可以在运行时根据需要选择要调用的函数,从而实现动态调用不同函数的目的。

定义函数指针数组的语法如下:

return_type (*function_pointer_array_name[size])(parameter_types);

其中,return_type是函数的返回类型,function_pointer_array_name是函数指针数组的名称,size是数组的大小,parameter_types是函数的参数类型。通过这样的定义,我们可以创建一个包含多个函数指针的数组。

以下是一个简单的示例,演示了如何定义和使用函数指针数组:

#include <iostream>

int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int multiply(int a, int b) {
    return a * b;
}

int main() {
    // 定义函数指针数组,包含3个指针,分别指向add、subtract和multiply函数
    int (*funcPtrArray[3])(int, int) = {add, subtract, multiply};

    // 通过函数指针数组调用不同的函数
    int result1 = funcPtrArray[0](5, 3); // 调用add函数
    int result2 = funcPtrArray[1](5, 3); // 调用subtract函数
    int result3 = funcPtrArray[2](5, 3); // 调用multiply函数

    std::cout << "Result1: " << result1 << std::endl; // 输出:Result1: 8
    std::cout << "Result2: " << result2 << std::endl; // 输出:Result2: 2
    std::cout << "Result3: " << result3 << std::endl; // 输出:Result3: 15

    return 0;
}

在上面的例子中,定义了三个不同的函数add()subtract()multiply(),然后声明了一个包含三个函数指针的数组funcPtrArray,并将其分别指向这三个函数。通过函数指针数组,可以根据索引选择不同的函数进行调用,从而实现了动态调用不同函数的功能。

函数指针数组在某些情况下非常有用,特别是在实现状态机、动态调用不同函数等场景中。然而,使用函数指针数组时要格外小心,确保函数指针指向的函数在调用时是有效的,以避免悬空指针和未定义的行为。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击