在一门 C 入门类(class)(在工程大学)中,我们被要求识别带有指针的声明 int (*(*f[5])(void))[10];
.
我目前对声明的理解是“一个包含 10 个函数指针的数组,每个函数指针返回一个 int 指针并且不带任何参数”。
谁能证实我对声明的理解,并告诉我这样的定义在实践中是否有用?
最佳答案
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
的数组的函数。
关于c - 了解特定 C 指针定义的学校作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50172236/