C中的函数指针语法

Joh*_*ith 2 c function-pointers

我正在学习C,特别是函数指针,我想我理解基础知识.

但是,这种语法让我感到困惑,我不知道如何阅读这个.我通过cdecl运行它并尝试一遍又一遍地阅读它,但我不知道如何处理它.

char (* ( *f())[])();
Run Code Online (Sandbox Code Playgroud)

我已经尝试编译它,它的工作原理.我意识到这里有一个指向函数的指针,并且它本身返回一个函数指针 - 但是,我不知道如何真正读取它.我去open-std检查规范,但无法找到函数指针的函数指针的确切语法.

如果有人能为我解决这个问题 - 或者告诉我如何自己解决这个问题我会非常感激.解答如何在将来解决这些问题的答案的额外要点.我尝试在Google和这里搜索类似的问题,但无法找到任何复杂的内容.

P0W*_*P0W 6

那么,以下可能有所帮助

f                     // identifier f
f()                   // is a function
*f()                  // that returns a pointer
(*f())[]              //  to an array
*(*f())[]             //  of pointers
(*(*f)[])()           // to functions 

char (* ( *f())[])(); // returning char. 
Run Code Online (Sandbox Code Playgroud)