C中的函数参数

我对C完全是新手。这是一个问题:

写这个function

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

正如我们在课堂上所做的那样,用它来找到所有的解决方案

 sin( pi*x / (1+x^2) ) = 0.25. 

现在,我不希望你解决这个问题。 我错过了这个讲座,只想了解其意义

 double f(double); 

在该上下文中,它意味着f是一个函数指针 ,该函数指向一个double参数,并返回一个double

举个例子:

 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)) 

这些是等价的。