2

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

但是,这种语法让我感到困惑,我不确定如何阅读。我已经通过 cdecl 运行它并尝试一遍又一遍地阅读它,但我不确定如何处理它。

char (* ( *f())[])();

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

如果有人能为我打破这个 - 或者告诉我如何自己打破这个,我将非常感激。解释将来如何解决这些问题的答案的加分。我试着在谷歌和这里搜索类似的问题,但找不到这么复杂的东西。

4

1 回答 1

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. 
于 2013-08-09T11:58:53.113 回答