C中的函数参数

时间:2011-12-18 15:22:12

标签: c arguments

我对C完全是新手。这是问题所在:

  

编写功能

fzero(double f(double),double x1, double x2)
     

正如我们在课堂上所做的那样,用它来找到

的所有解决方案
sin( pi*x / (1+x^2) ) = 0.25.

现在,我不想让你解决这个问题。我错过了这个讲座,只想了解是什么意思

double f(double);

1 个答案:

答案 0 :(得分:9)

在该上下文中,这意味着f是函数的函数指针,它接受一个double参数,并返回double。< / p>

举个例子:

void foo(double f(double))
{
    double y = f(3.0);  // Call function through function pointer
    printf("Output = %f\n", y);   // Prints "Output = 9.0000"
}

double square(double x)
{
    return x*x;
}

int main(void)
{
    foo(&square);  // Pass the address of square()
}

请注意,函数指针有两种语法:

void foo(double f(double))
void foo(double (*f)(double))

这些是等效的。