C语言指针问题做函数参数

img


这个为什么运行不了,出现了什么问题,希望大家给出正确答案,可以多讨论,

你这个问题还是很好的,是一个标准的函数指针的运用。

在main 函数中希望选择使用的函数,例如max,然后将其作为参数传入process,即第三个参数。
那么对于process ,第三个参数就是形参,并不知道main 中传入的是什么函数,直接使用即可。。。。。。

下面给你提供简单修改后的代码,应该很好理解~~~~


```c
int process(int a, int b, int(*fun)(int, int))
{
   return fun(a, b); 
}

int main()
{
    int a, b;
    printf("input a,b:\n");
    scanf("%d  %d", &a, &b);
    printf("max = %d\n", process(a, b, max));
    
    return 0;
}

```

你的fun后边怎么还带a,b两个参数,这样就像是个函数,如何是函数你不能单独用fun判断需要加上你上边那2和参数

img

int( * fun)(int a,int b)
这样写,个人推测这样写是把fun当成指针函数了,但是你这样写是不对的,因为你并没有声明这个函数
还有就是,你既然把它当做指针函数,那么怎么直接fun==max呢?

如有帮助,还请帮忙点下采纳!感谢!