考虑:
char (*(*x())[5])()
如何剖析这个表达式?
我认为它是一个函数,它返回一个大小为5的数组,其成员是指向函数的指针,它不接收任何输入并返回一个char。
我是对的吗?
答案 0 :(得分:14)
搜索“左右规则”
在你的情况下,它应该是:
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
答案 1 :(得分:12)
我最近在Stack Overflow上看到了很多奇怪的声明。
当我懒惰时,我使用cdecl.org:
“将x声明为函数,返回指向返回char的函数指针的数组5的指针”
如果没有,则有clockwise spiral rule。 < - AWESOME