c - 了解特定 C 指针定义的学校作业

标签 c pointers syntax

在一门 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/

相关文章:

python - 具有默认值的参数和关键字参数之间有什么区别?

c - 交错开关上的模糊 C 构造

c - 为什么 C 会给出此错误 ‘size’ undeclared(在此函数中首次使用)?

c - 双向链表示例

python ctypes将指向结构的指针作为参数发送给 native 库

python - 尝试在 Debian 上使用 pip3 时出现语法错误

python - 难以使用具有不同格式字符串的 Python struct.Struct.unpack_from

c - 将 C dll 方法导出到 c# P/Invoke

c++ - 在一个类中填充一个QGraphicsScene并返回场景指针

c++ - alloca 返回的指针的基于索引的访问和 "placement new"的效果