在foo的参数情况下,两个声明之间有什么区别?第二个语法对我来说很熟悉,并声明了一个指向
函数的指针.这两个声明完全相同吗?
void foo(int(int));
void foo(int(*)(int));
只要在
函数参数列表中使用int(int)和int(*)(int),它们就是等价的.在
函数参数列表中,int(int)由语言
自动调整为int(*)(int).
使得int []参数声明等效于int *参数声明的是adjustment mechanism.
在这个特定的上下文之外,int(int)和int(*)(int)意味着两个不同的东西.