美文网首页
函数名是地址吗?不是

函数名是地址吗?不是

作者: 麦兜胖胖次 | 来源:发表于2017-01-25 00:26 被阅读0次

    函数名并不是函数地址的代表,这种误解与数组名就是指针一样犯了相同的错误。函数名是函数实体的代表,不是地址的代表,当然,你马上就会有疑问,平时我们不都是把函数名作为函数的地址吗?是的,我可以告诉你,函数名可以作为函数的地址,但是,绝大多数人都忽略了一个条件,从函数到指针的隐式转换是函数名在表达式中的行为,就是说,这个转换仅在表达式中才会发生,这仅是函数名众多性质中的一个,而非本质,函数名的本质就是函数实体的代表。

    到了C++,由于C++规定,非静态成员函数的左值不可获得,因此非静态成员函数不存在隐式左值转换,即不存在像常规函数那样的从函数到指针的隐式转换,所以必须在非静态成员函数前使用&操作符才能获得地址。

    参考:
    http://bbs.csdn.net/topics/390573179?page=1

    相关文章

      网友评论

          本文标题:函数名是地址吗?不是

          本文链接:https://www.haomeiwen.com/subject/ohdtittx.html