2
我完全陌生的C.这里的问题:函数参数
编写函数
fzero(double f(double),double x1, double x2)
如我们在课堂上做,并用它来寻找的
所有解决方案sin(pi*x/(1+x^2)) = 0.25.
现在,我不想让你解决这个问题。我已经错过了这次演讲,只有想明白什么意思
double f(double);
我完全陌生的C.这里的问题:函数参数
编写函数
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))
这些是等价的。
很好的答案!非常感谢你! – 2011-12-18 15:26:43