c语言向函数传递函数作为参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言向函数传递函数作为参数相关的知识,希望对你有一定的参考价值。
举个例子说吧,用话说不太明白,比如
int a()
int value = 1;
return value;
int b(int target)
return target;
可不可以,或者有什么把法可以直接将函数int a()传递到函数b中呢?
//---子函数声明---//
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语言向函数传递函数作为参数的主要内容,如果未能解决你的问题,请参考以下文章