这是我面试时问的!
如何声明以 void 作为参数并返回指向整数的指针数组的函数指针数组?
有人可以帮忙吗?
p
让我们看看......一个作为参数的函数指针void
可以这样声明:
void (*p)(void);
返回指向整数的指针数组的方法可能如下所示:
int** (*p)(void);
或者,更严格地遵循“数组”的定义(这在实践中不太可能)——请注意,正如 Amir 指出的那样,C 中的函数实际上不能返回数组,但可以返回指向数组的指针(100 int指针)像这样:
int* (*(*p)(void))[100];
一个由七个这样的野兽组成的数组可以表示为:
int* (*(*ptrs[7])(void))[100];
当然可以删除,给void
我们留下:
int* (*(*ptrs[7])())[100];
这可以通过出色的cdecl 工具来确认。
typedef int* (*pt2Function)(void * data);
pt2Function funcArr1[10] = {NULL};
我认为不可能返回一个数组,你应该为它创建一个 pionter