2017-03-18 116 views
1

聲明:瞭解c函數指針

「數組n函數指針,返回函數指針,返回指向整數」

誰能幫助我理解函數原型對於上述說法?

鑑於答案 - int *(*(*a[N])())();

請誰能給我解釋一下我們是如何在上面得出答案?

+4

我已經編碼了25年而不知道這一點? –

+0

你不會需要這個。即使你認爲你做了,也沒有人會理解你的代碼。 :-)在C++中,這可能會通過使用虛函數和繼承來解決(並因此隱藏所有指針) –

+0

@BoPersson如果只有我的教授會理解現實世界軟件是如何工作的:/ –

回答

1
*a[N] 

是N的指針數組,稱之爲X

*(x)() 

返回函數指針,調用它ÿ

int *(y)() 

是函數指針返回整數

1
int *(*(*a[500])())(); 

轉換爲:

聲明作爲數組指針的500至函數返回指針 函數返回指針爲int


注:下一次,使用本網站來了解複雜的指針聲明http://cdecl.org/