我们如何解释以下声明:
char (*(*f())[])();
如何开发一种方便的技术来阅读C中那些复杂甚至更复杂的声明。如果你使用快速技巧,请分享。
答案 0 :(得分:2)
确实有一个不太知名的伎俩。假设f
是变量名称,*
,()
和[]
是您可以对其执行的操作。使用C运算符的优先规则来表示:
f
可以应用
f()
然后解除引用
*f()
然后下标
(*f())[]
然后解除引用
*(*f())[]
然后应用
(*(*f())[])()
给出char
char (*(*f())[])()
所以f
是一个函数,返回指向返回char的函数的指针数组的指针。
答案 1 :(得分:0)