函数指针数组_函数指针作为返回值

本文介绍了两种使用函数指针数组的方法。通过定义不同级别的函数指针,并将其组织成数组,可以实现灵活的功能调用。文章提供了具体的代码示例,展示了如何在C语言中声明和使用这些函数指针。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//第一种实现方式

#include <stdio.h>
#define N 3

char *func1_0();
char *(*func1)();

char *(*func2_0())();//返回指向返回值为字符指针的函数的函数指针
char *(*func2_1())();
char *(*func2_2())();

char *(*(*func2[N])())();//函数指针数组

int main(void)
{
 func2[0] = func2_0;
 func2[1] = func2_1;
 func2[2] = func2_2;
 for(int i = 0; i < N; i++)
 {
  func1 = func2[i]();
  printf("%s\n", func1());
 }
 return 0;
}

char *func1_0()
{
 return "ssssss";
}

char *(*func2_0())()
{
 return func1_0;
}
char *(*func2_1())()
{
 return func1_0;
}
char *(*func2_2())()
{
 return func1_0;
}

 

//第二种实现方式

#include <stdio.h>
#define N 3


typedef char *(*func1)();
typedef func1 (*func2)();

 

char *func1_0();

 

func1 func2_0();
func1 func2_1();
func1 func2_2();

 

int main(void)
{
 func1 func11;
 func2 func[N] = {func2_0, func2_1, func2_2};

 for(int i = 0; i < N; i++)
 {
  func11 = func[i]();
  printf("%s\n", func11());
 }
 return 0;
}

char *func1_0()
{
 return "ssssss";
}

func1 func2_0()
{
 return func1_0;
}

func1 func2_1()
{
 return func1_0;
}

func1 func2_2()
{
 return func1_0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值