这两个在C中的声明有什么区别?
int (*p)(char (*a)[]);
int *p(char (*a)[]);
答案 0 :(得分:1)
对于inMemoryDatabaseBuilder
:
int (*p)(char (*a)[]);
是(*p)(char (*a)[])
。int
是一个函数,它返回一个(*p)
并接受一个int
类型的参数。 (有关后者的更多信息。)char (*a)[]
是相同的功能。*p
是该函数的指针。p
中,char (*a)[]
是(*a)[]
。char
是(*a)
的数组,大小未知。char
是同一数组。*a
是指向a
数组的指针,该数组的大小未知。char
是指向返回p
的函数的指针,该函数采用的参数是指向大小未知的int
数组的指针。对于char
:
int *p(char (*a)[]);
是*p(char (*a)[])
。int
是指向p(char (*a)[])
的指针。int
是一个函数,它返回指向p
的指针并采用类型int
的参数。char (*a)[]
数组的指针。char
是一个函数,该函数返回指向p
的指针,并接受一个指向大小未知的int
数组的指针的参数。