传递引用是传递指针的特例吗?

这个问题在这里已经有了答案:

  • C ++中的指针变量和引用变量之间有什么区别? 32个答案

  • 是的,它基本上与指针相同,但是更好更安全的版本,因为指针地址不能被更改或设置为空。 我认为它主要是作为一种手段来获得很好的函数接口,而不需要接口的用户担心指针 - 即函数保持简单但不复制对象,纯粹是它的地址。 类拷贝构造函数是引用至关重要的主要例子。


    一个引用是一个有一些特殊限制的指针。 绝对不能对参考进行初始化。 当创建引用时,它必须指向某个东西。 当想要一个不会为NULL的“指针”时,这很有用。

    此外,引用不能使其保存的地址改变,因此它是一个常量指针。

    它有一些很好的语法糖,可以让它使用点运算符,使得它在从按值代码更改为按引用代码时非常有用。

    在实践中,将函数中的引用用作参数或返回值通常会表示“按地址,不能为NULL并且必须是有效的对象”。 相反,使用指针通常意味着“可能是NULL,所以NULL必须处理”。 通过指针还允许指针算术和操作。

    假设你了解两者,你应该使用的是你最舒服的。 我自己更喜欢指针。

    编辑:正如在这里的评论中指出的那样,你不能直接获取参考地址,因为它会返回参考所指的地址。 这是另一个不适用于平均指针的限制。

    链接地址: http://www.djcxy.com/p/20741.html

    上一篇: Is passing by reference is a special case of passing as pointer?

    下一篇: How to use instance of one class in a method of another class?