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

C++ pointer to function declaration syntax

本文关键字:语法 指针 声明 函数 C++      更新时间:2023-10-16

foo的参数的情况下,这两个声明有什么区别?第二个语法对我来说很熟悉,它声明了一个指向函数的指针。两个声明是否完全等同?

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

只要在函数参数列表中使用int(int)int(*)(int),它们就是等效的。在函数参数列表中,int(int)由语言自动调整为表示int(*)(int)

它与使参数声明等同于int *参数声明的调整机制相同int []

在这个特定的上下文之外,int(int)int(*)(int)意味着两件不同的事情。