函数指针作为返回值的写法

C语言指向函数的指针承载的信息比较复杂,组织起来要素要写全。根据指向函数的指针的书写语法,下面的代码就是一个返回函数指针的函数:

int (*f(void))(int){

//f是函数,没有参数,返回指向一个函数的指针;这个被指向的函数有一个int型形参,且返回一个int值 return fun;

//fun是个函数名,必须具备一个int形参、返回int值的要求}以下代码可以验证上述函数的正确性:

#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int fun(int n){
printf("abcdef\n");
return n;
}
int (*f(void))(int){
return fun;
}
int main(void){
printf("%d\n",f()(100));//调用函数f,通过f返回的指针用100调用函数fun
return 0;
}

输出是:abcdef100

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
函数指针在C语言中是一个指向函数指针变量,它可以用来传递函数或在程序运行时动态调用函数函数指针的声明方式如下: ```c return_type (*function_name)(argument_type1, argument_type2, ...); ``` 其中,`return_type`是函数返回类型,`function_name`是指针变量名,`argument_type1`、`argument_type2`等是函数参数类型。 下面是一个简单的例子,演示如何声明和使用一个函数指针: ```c #include <stdio.h> // 声明一个函数指针类型 typedef void (*func_ptr)(int); // 定义一个函数,用于接受函数指针参数 void call_func(func_ptr ptr) { printf("Calling function...\n"); ptr(123); // 调用函数指针所指向的函数 } // 定义一个函数,它将被函数指针所指向 void my_func(int value) { printf("Value is: %d\n", value); } int main() { // 声明一个函数指针变量并初始化 func_ptr ptr = &my_func; // 调用函数指针所指向的函数 call_func(ptr); return 0; } ``` 在上面的例子中,首先声明了一个函数指针类型`func_ptr`,它可以指向一个没有返回、参数为整型的函数。然后定义了两个函数,一个是`call_func`函数,它接受一个函数指针参数,用于调用函数指针所指向的函数,另一个是`my_func`函数,它将被函数指针`ptr`所指向。在`main`函数中,定义了一个函数指针变量`ptr`并初始化为`my_func`函数的地址,然后调用`call_func`函数,并将`ptr`作为参数传递给它。运行程序,输出结果如下: ``` Calling function... Value is: 123 ``` 可以看到,程序成功调用了函数指针所指向的函数,并将参数传递给了它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值