C++指向函数声明语法的指针

luk*_*keg 6 c++ function-declaration

foo参数的情况下,两个声明之间有什么区别?第二个语法对我来说很熟悉,并声明了一个指向函数的指针.这两个声明完全相同吗?

void foo(int(int));
void foo(int(*)(int));
Run Code Online (Sandbox Code Playgroud)

AnT*_*AnT 7

它们是等效的,int(int)并且int(*)(int)在函数参数列表中使用.在功能参数列表中,由语言int(int)自动调整int(*)(int).

使参数声明等效于参数声明是相同的调整机制.int []int *

在这个特定的背景之外int(int),int(*)(int)意味着两件不同的事情.