2012-08-13 111 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); 
}