c语言向函数传递函数作为参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言向函数传递函数作为参数相关的知识,希望对你有一定的参考价值。

举个例子说吧,用话说不太明白,比如
int a()
int value = 1;
return value;

int b(int target)
return target;

可不可以,或者有什么把法可以直接将函数int a()传递到函数b中呢?

#include <stdio.h>
//---子函数声明---// 
int func1();
int func2(int (*func1)());        //形参为函数指针(即指向函数的指针) 
//---主函数---// 
int main()
    printf("向函数二传递函数一,\\n即函数一作为函数二的参数。\\n");
    printf("%d ",func1());
    printf("%d\\n",func2(func1));//注意函数名即为函数地址!!!!!! 
                                //实参为函数名func1或者&func1,两者等价,而非func1() 
//---子函数定义---// 
int func1()
    return 1;


int func2(int (*func1)())        //形参为函数指针(即指向函数的指针)
    return func1()+1;

参考技术A 将b函数中的return target直接改成return a()就可以获得a函数中的value值了,有什么问题还可以问我!我会尽力帮你~追问

我问的不是这个意思哦,我想问的是如何将a()函数作为一个参数传递给b()函数

参考技术B int a()
int value = 1;
return value;

int b(int (*f)())
return target;

void main()

b(a); //将函数a传递到b中
参考技术C 使用函数指针。如下:
#include<stdio.h>

int a()

int value = 1;
return value;

int b(int (*a)())

return a();


void main()

b(a);
本回答被提问者采纳
参考技术D 复制一下楼上的 稍稍改动

#include<stdio.h>

int a()

int value = 1;
return value;

int b(int target)

return target;


void main()

b(a());

以上是关于c语言向函数传递函数作为参数的主要内容,如果未能解决你的问题,请参考以下文章

C语言中,结构体作为函数参数传递,详解?

C语言中,数组名作为函数参数,属于啥传递,为啥?

在C语言中,数组作为参数,是怎样在函数之间传递的啊??

关于C语言中数组作为参数传递的疑惑~~

请问这个C语言中有参数的函数是怎么传递值的,调用的时候没有参数啊。

在C语言中参数是如何传递的?