使用函数指针时,有时我们会添加&在函数名之前,有时我们没有。这两者有什么区别?
void say_hi(void) {
cout << "Hi.." << endl;
}
int main(int argc, char* argv[])
{
void (*func)(void) = &say_hi;
void (*func1)(void) = say_hi;
void (*func2)(void) = *say_hi;
void (*func3)(void) = **say_hi;
func();
func1();
func2();
func3();
return 0;
}
以上代码的输出:
Hi..
Hi..
Hi..
Hi..
答案 0 :(得分:3)
&amp;是“仍然”只是地址。然而,函数喜欢衰减到类似于衰变成“普通”指针的数组的函数指针。