在一门C语言入门课程中(在一所工程大学里),我们被要求用沿着int (*(*f[5])(void))[10];线的指针来标识一个声明。
我目前对声明的理解是“一个包含10个函数指针的数组,每个指针返回一个int指针,并且不带任何参数”。
有人可以证实我对这项声明的理解,并告诉我这些定义在实践中是否有用?
发布于 2018-05-04 18:15:53
int (*(*f[5])(void))[10]将(*(*f[5])(void))[10]声明为int。
这意味着(*(*f[5])(void))是一个10 int的数组。
这意味着(*f[5])(void)是指向10 int数组的指针。
这意味着(*f[5])是一个接受void并返回一个指向10个int数组的指针的函数。
这意味着f[5]是一个指向函数的指针,该函数接受void并返回一个指向10个int的数组的指针。
这意味着f是一个由5个指针组成的数组,这些指针指向以void为参数的函数,并返回一个指向10个int的数组的指针。
https://stackoverflow.com/questions/50172236
复制相似问题