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))
这些是等价的。