Интерпретация объявления переменной указателя - PullRequest
0 голосов
/ 09 марта 2020
  1. Что означает int *(cmp)(char*, char*);?

  2. В чем разница между char* ptr1; и char *ptr2;

1 Ответ

2 голосов
/ 09 марта 2020

this

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

- это объявление функции с типом возвращаемого значения int * и двумя параметрами типа char *.

. Вы можете заключить декларатор в скобки , Таким образом, приведенное выше объявление функции может быть переписано так:

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

Оба объявления эквивалентны

int * cmp(char*, char*);

Объявление указателя на такую ​​функцию будет выглядеть как

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

Нет разницы между этими декларациями

char* ptr1;

char *ptr1;

char * ptr1;
...