int (*s[10]) (int);含义,函数指针。

问题

int (*s[10]) (int);含义是什么?

答案

是一个包含10个函数指针的数组的声明。

示例

一般情况看到的函数指针如下:

int fun1(int);//这是一个函数声明
int (*pf)(int);//声明了一个函数指针
pf=fun1;//将函数的地址赋值给pf。

这里的函数指针仅有一个pf,而问题中是用数组存放函数指针,可以存放10个函数指针。

完整示例代码

#include <iostream>

int fun1(int num) {
    return num + 1;
}
int fun2(int num) {
    return num * 2;
}

int main() {
    int (*s[10])(int); // 声明一个包含10个函数指针的数组
    int (*pf)(int); //声明一个函数指针

    s[0] = fun1; //传递函数地址
    s[1] = fun2; //传递函数地址
    
    pf=fun1;//传递函数地址

    int result1 = s[0](2); //调用数组第1个函数指针,并传递参数2
    int result2 = s[1](4); //调用数组第2个函数指针,并传递参数4

    int result3 = pf(3); //调用pf函数指针,并传递参数3

    std::cout<<"The Result 1: "<<result1<<std::endl;//输出3
    std::cout<<"The Result 2: "<<result2<<std::endl;//输出8

    std::cout<<"The Result 3: "<<result3<<std::endl;//输出4
    return 0;
}

posted @ 2023-09-24 11:39  sixie  阅读(168)  评论(0)    收藏  举报