我对C完全是新手。这是问题所在:
编写功能
fzero(double f(double),double x1, double x2)
正如我们在课堂上所做的那样,用它来找到
的所有解决方案sin( pi*x / (1+x^2) ) = 0.25.
现在,我不想让你解决这个问题。我错过了这个讲座,只想了解是什么意思
double f(double);
答案 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))
这些是等效的。