2012-08-13 91 views
0

如何用函数指针调用这个函数?如何调用带参数指针的函数指针?

double a(double *a){ 
    return *a; 
} 

我尝试这一点,但没有运气:

double (*p)(*double) = &a; 

我没有发现太多很好的教程为那些目的,你可以参考我一些很好的链接。

回答

4

像这样:

double (*p)(double*) = &a; 

正如你所看到的,在函数指针的类型,函数签名是用完全相同的方式在实际的函数声明(你不需要参数名称)。

+1

在问题('双* A')建议'*'属于'A',不'双所使用的精确的形式'。这可能是根本原因。 – MSalters 2012-08-13 10:45:20

0

略微改变,以便不一切称为a

double deref(double *a) 
{ 
    return *a; 
} 

double test() 
{ 
    double (*deref_pointer)(double*) = deref; 

    double value = 3.14; 

    return deref_pointer(&value); 
}