问我终于弄明白了函数指针的声明语法,但现在如何初始化一个函数指针呢?
答使用类似以下的方式:
extern int func(); int (*fp)() = func;
当函数名出现在表达式中时,它会像数组名一样,“衰变”成一个指针(也就是说,它的地址会被隐式地取到)。
通常需要对函数进行先前的显式声明(可能在头文件中),如示例所示。当函数名的唯一用途是获取其值时,调用函数时可能发生的隐式外部函数声明没有帮助。
另请参阅问题 1.25 和 4.12。
由 托管