在为函数指针赋值时,为什么可以多次使用解除引用运算符?

Fde*_*deF 7 c++

我想知道*当我们想要将函数分配给函数指针时,可以多次使用解除引用运算符的具体原因.
作为示例,以下代码完美地编译并运行:

#include <iostream>

void f() { std::cout << "Hello World!" << std::endl; }

int main() {
    void(*f_ptr)(void) = ***************************************f;
    f_ptr();
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

Die*_*ühl 11

函数和函数引用在必要时衰减到函数指针.没有为函数定义的dereference运算符,但是有一个用于函数指针:函数或函数的引用很快就会衰减到指针,只是再次变为derefernced.