C ++ указатель на синтаксис объявления функции - PullRequest
0 голосов
/ 24 мая 2018

В чем разница между двумя объявлениями в случае аргументов foo?Синтаксис во втором мне знаком и объявляет указатель на функцию.Обе декларации полностью эквивалентны?

void foo(int(int));
void foo(int(*)(int));

1 Ответ

0 голосов
/ 24 мая 2018

Они эквивалентны, если int(int) и int(*)(int) используются в списках параметров функции.В списке параметров функции int(int) автоматически корректируется языком для обозначения int(*)(int).

Это тот же механизм настройки , который делает int [] объявление параметра эквивалентным int * объявлению параметра.

За пределами этого конкретного контекста int(int) и int(*)(int) означают две разные вещи.

...