我想知道,爲什麼double (*fptr)()
以梯形規則函數的參數列表中使用?double(* fptr)()在梯形法則函數的參數列表中表示什麼?
我知道這意味着雙重的文件指針。但爲什麼我需要空括號?
我想知道,爲什麼double (*fptr)()
以梯形規則函數的參數列表中使用?double(* fptr)()在梯形法則函數的參數列表中表示什麼?
我知道這意味着雙重的文件指針。但爲什麼我需要空括號?
這並不意味着文件指針翻一番,在f代表功能。
一旦你看功能是如何定義這是顯而易見的:
double myfunc()
如果我現在想要一個指針,它沒有參數,並返回一個雙功能這將是類型
double (*)()
這是您的參數的類型。添加一個名字(fptr
)將其結果如下:
double (*fptr)()
一個名爲fptr
(簡稱函數指針)參數,它是指向不帶任何參數,並返回雙重功能。
它不是文件指針,聲明double (*fptr)()
意味着fptr
是函數指針返回一個double
並沒有參數,(空括號表示函數指針)
一個例子:假設你有一個函數像:
double fun(){
double d = 0.9;
return d;
}
,那麼你可以像分配的fun
地址fptr
:
fptr = fun;
您可以使用fptr
喜歡叫fun()
:
d = fptr()
哪裏d
是一些雙可變
編輯
我覺得你需要知道Pointers To Functions,在一般情況下,我們定義的函數指針,如:
returntype function (argtype1, argtype2, argtype3)
對應的指針這樣的功能是
returntype (*ptr) (atgtype1, atgtype2, atgtype3);
注意這裏沒有空括號,但我用的論據,你的fptr
指向一個函數像我的例子,不接受的說法在給定類型。
指向返回double的函數的指針。 –
你可能想嘗試http://cdecl.org/這樣的問題:
Ç胡言亂語↔英語
double (*fptr)()
聲明FPTR爲指針函數返回一個雙的雙
「文件指針「甚至沒有意義...... – GRAYgoose124