函数指针数组的指针-阿里云开发者社区

开发者社区> 云计算> 正文

函数指针数组的指针

简介: 下面定义一个简单的函数指针数组的指针: char* (*(*pf)[3])(char* c); pf是一个指针,这个指针指向一个有3个元素的数组,每个元素是一个参数为char* ,返回值为char *的指针。


下面定义一个简单的函数指针数组的指针:

char* (*(*pf)[3])(char* c);


pf是一个指针,这个指针指向一个有3个元素的数组,每个元素是一个参数为char* ,返回值为char *的指针。

示例:

#include <stdio.h>
#include <string.h>

char* func1(char* c)
{
    printf("%s\n", c);
    
    return c;
}

char* func2(char* c)
{
    printf("%s\n", c);
    
    return c;
}

char* func3(char* c)
{
    printf("%s\n", c);
    
    return c;
}

int main()
{
    char* (*a[3])(char* c);
    char* (*(*pf)[3])(char* c);
    pf = &a;
    
    a[0] = func1;
    a[1] = func2;
    a[2] = func3;
    
    printf("%p\n", a[0]);
    printf("%p\n", a[1]);
    printf("%p\n", a[2]);
    
    (*pf)[0]("func1"); // *pf[0][0]("func1");
    (*pf)[1]("func2"); // *pf[0][1]("func2");
    (*pf)[2]("func3"); // *pf[0][2]("func3");
    
    return 0;
}

img_44d6d4b92cda010dd6ae82b2890f21b0.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章