学校分配理解特定C指针的定义

0 c syntax pointers

在C介绍性课程(在工程大学)期间,我们被要求确定一个带有指针的声明int (*(*f[5])(void))[10];.

我目前对声明的理解是"一个包含10个函数指针的数组,每个函数指针返回一个int指针,不带任何args".

有人可以证实我对声明的理解,并告诉我这些定义是否会在实践中有用?

Eri*_*hil 5

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.