2011-12-18 70 views
2

我完全陌生的C.这里的问题:函数参数

编写函数

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

如我们在课堂上做,并用它来寻找的

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

现在,我不想让你解决这个问题。我已经错过了这次演讲,只有想明白什么意思

double f(double); 

回答

9

在这种情况下,这意味着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)) 

这些是等价的。

+0

很好的答案!非常感谢你! – 2011-12-18 15:26:43