解释这些函数指针声明的区别

时间:2011-11-09 11:12:24

标签: c function-pointers function-declaration

请突出显示以下函数声明之间的区别:

  1. void (*p) (void *a[], int n)

  2. void *(*p[]) (void *a, int n)

3 个答案:

答案 0 :(得分:6)

  1. void (*p) (void *a[], int n)定义指向函数的指针,该函数将void*数组和int作为参数

  2. void *(*p[]) (void *a, int n)定义指向返回void*的函数的指针数组,并将void*int作为参数

答案 1 :(得分:5)

也没有函数声明,因此无需解释。

然而,两者都是函数指针的声明。你应该消费一个很好的tutorial website

我还应该建议方便的程序cdecl(或其online incarnation s);也许你想在有人为你揭示答案之前自己试一试?

(您需要在网站中键入void *(*p[]) (void *, int);即没有函数参数的标识符。)

答案 2 :(得分:0)

编辑:没关系,我误解了声明。 遗憾。

问题是,你正在声明函数指针,而不是人们已经指出过的函数。