函数名、函数指针

来源:互联网 发布:极右势力的网络保护伞 编辑:程序博客网 时间:2024/04/29 03:46

我们知道,函数名就表示函数的地址,C++ primer plus第七章“历史与逻辑”中说函数名是指向该函数的指针,所以指向函数的指针(函数指针)作用方式应该与函数名类似,即不用解引用,直接pf(int)即可调用函数。那么,函数名与函数指针到底有什么区别呢?

看代码。

#include <iostream>using namespace std;void fun();int main(){void (*pf) ()= fun;cout << pf << endl      << fun << endl     << *pf  << endl     << *fun << endl;             << &fun << endl      << &pf << endl;return 0;}void fun(){//do nothing}

前五个输出全部是函数的首地址,第六个输出是函数指针的存放地址。函数名是一个神奇的东西,函数名是函数地址,它的引用于解引用也是函数地址。我现在还不明白其中的道理,如果有知道的,还望不吝赐教。

0 0