可能重複:
How to understand complicated function declarations?瞭解一些瘋狂的C/C++聲明
考慮:
char (*(*x())[5])()
如何剖析這體現在哪裏?
我認爲它是一個函數,它返回一個大小爲5的數組,它的成員是指向不接收輸入並返回字符的函數的指針。
我對不對?
可能重複:
How to understand complicated function declarations?瞭解一些瘋狂的C/C++聲明
考慮:
char (*(*x())[5])()
如何剖析這體現在哪裏?
我認爲它是一個函數,它返回一個大小爲5的數組,它的成員是指向不接收輸入並返回字符的函數的指針。
我對不對?
搜索 「左右法則」
在你的情況下,它應該是:
x : x is a
x() : function
*x() : returning pointer to
(*x())[5] : a 5-element array of
*(*x())[5] : pointer to
(*(*x())[5])() : function
char (*(*x())[5])() : returning char
我在棧上看到很多奇怪的聲明 這些天溢出。
當我懶惰,我使用cdecl.org:
「聲明x作爲函數返回指針的指針陣列5起作用返回炭」
當不,有clockwise spiral rule 。 < - 這是真棒
退房http://cdecl.org/爲非平凡的聲明。 – hmjd 2012-07-10 09:17:53
將x聲明爲函數返回指向數組5的指向返回char的函數的指針 - http://cdecl.org/ – Artefact2 2012-07-10 09:17:56
不,它是一個函數,返回一個指向包含函數的五個指針數組的指針(C:unspecified parameters | C++ :無參數)並返回一個字符。函數不允許以C或C++返回數組。搜索重複... – 2012-07-10 09:18:09