指针变量声明的解释

Interpretation of a pointer variable declaration

  1. int *(cmp)(char*, char*);是什么意思?

  2. char* ptr1;char *ptr2;

  3. 有什么区别

这个

int *(cmp)(char*, char*);

是 return 类型 int * 和两个 char *.

类型参数的函数声明

您可以将声明符括在括号中。所以上面的函数声明也可以改写成

int * ( (cmp)(char*, char*) );

这两个声明等同于

int * cmp(char*, char*);

指向此类函数的指针声明如下所示

int * ( *p_cmp )(char*, char*) = cmp;

这些声明之间没有区别

char* ptr1;

char *ptr1;

char * ptr1;