我正在学习C,特别是函数指针,我想我理解基础知识。
然而,这种语法让我感到困惑,我不知道该怎么读。我通过cdecl运行这个并尝试一遍又一遍地阅读它但是我不确定如何处理它。
char (* ( *f())[])();
我已经尝试编译它并且它有效。 我意识到这里有一个指向函数的指针,并且它本身返回一个函数指针 - 但是,我不知道如何真正读取它。我去open-std检查规范,但无法找到函数指针的函数指针的确切语法。
如果有人可以为我解决这个问题 - 或者告诉我如何自己解决这个问题,我会非常感激。解答如何在将来解决这些问题的答案的额外要点。我尝试在谷歌和这里搜索类似的问题,但却无法找到任何复杂的问题。
答案 0 :(得分: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.