首页 > 解决方案 > 我怎样才能传递以下论点,它是什么类型的?

问题描述

我对 C 语言比较陌生,找到了这个问题的代码。你如何传递double (*f)(double)函数的参数以及指针是如何工作的?

这是功能:

double derivative(double (*f)(double), double x0, int order)

我的猜测是,首先你需要类似的东西:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

double f(double x){
    return pow(x,2);
} 

int main(){
    double x = 2;
    int order = 2;
    derivative(f(x), x , 2);
}

我试过了,但没有用。谢谢您的帮助。

标签: cderivative

解决方案


double (*f)(double)是一个函数指针。这意味着您需要传递一个指向(或只是名称)函数的指针。在您的尝试中,您正在调用该函数,然后传递返回值,这是不正确的。

正确的方法是:

derivative(f, x, 2);

推荐阅读