请突出显示以下函数声明之间的区别:
void (*p) (void *a[], int n)
void *(*p[]) (void *a, int n)
答案 0 :(得分:6)
void (*p) (void *a[], int n)
定义指向函数的指针,该函数将void*
数组和int
作为参数
void *(*p[]) (void *a, int n)
定义指向返回void*
的函数的指针数组,并将void*
和int
作为参数
答案 1 :(得分:5)
也没有函数声明,因此无需解释。
然而,两者都是函数指针的声明。你应该消费一个很好的tutorial website。
我还应该建议方便的程序cdecl
(或其online incarnation s);也许你想在有人为你揭示答案之前自己试一试?
(您需要在网站中键入void *(*p[]) (void *, int)
;即没有函数参数的标识符。)
答案 2 :(得分:0)
问题是,你正在声明函数指针,而不是人们已经指出过的函数。