|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第30课课上甲鱼老师用了这样一个例子
#include <stdio.h>
int add(int, int);
int sub(int, int);
int calc(int (*fp)(int, int), int, int);
int add(int num1, int num2)
{
return num1 + num2;
}
int sub(int num1, int num2)
{
return num1 - num2;
}
int calc(int (*fp)(int, int), int num1, int num2)
{
return (*fp)(num1, num2);
}
int main()
{
printf("3 + 5 = %d\n", calc(add, 3, 5));
printf("3 - 5 = %d\n", calc(sub, 3, 5));
return 0;
}
int calc(int (*fp)(int, int), int, int);这里定义函数指针int (*fp)(int, int) 是否可以理解为一个对函数是add还是sub的“选择”,后边跟的(int,int)代表“被选择”的函数需要传入2个int类型的参数
望大神指点,谢谢
这里是将函数指针作为calc函数一个形参,指明需要传递一个怎样的函数——返回值是int,函数有两个int类型的形参
就像你理解的那样,选择满足这样条件的函数(比如add或sub函数)作为实参传递给calc函数
|
|