3

请强调以下函数声明之间的区别:

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

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

4

3 回答 3

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

  2. void *(*p[]) (void *a, int n)定义了一个指向函数的指针数组,这些函数返回 a void*,并将 avoid*和 anint作为参数

于 2011-11-09T11:14:59.850 回答
5

函数声明也不是,所以没有什么可解释的。

然而,两者都是函数指针的声明。您应该使用一个出色的教程网站

我还应该建议方便的程序cdecl(或其在线化身);也许您想在有人为您揭晓答案之前自己试一试?

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

于 2011-11-09T11:14:13.730 回答
0

编辑:没关系,我误读了声明。对不起。

问题是,您声明的是函数指针,而不是人们已经指出的函数。

于 2011-11-09T11:16:05.200 回答