2013-08-20 83 views
-2

我想获得关于引用和指针一些澄清:引用和指针

  1. 什么是异同引用和指针之间的点? (其实我期待更多关于“执行机制”之类的差异,而不是理论值)

  2. 有没有为拇指任何规则,其中其中一方将被使用?

  3. 其中其中与其他相比较。

这个问题的原因是关于包含引用和指针的语句的执行方法常常存在混淆。

在此先感谢。

+2

您的问题太广泛,无法找到有用的答案。特别是,引用在C++和Java中扮演着显着不同的角色(您在这里都标记了这些角色)。 – chrylis

+0

@Gabriel:我看到了你提供的链接。其实我更关注的是执行机制的差异类型,而不是理论类型。 – iluvthee07

+0

@chrylis:谢谢你指出。我已经删除了Java的标签。 – iluvthee07

回答

1
  1. 的参考文献是它必须被给予的对象在初始化为指向指针,不能改变指向另一个对象,并且使用不同的语法。

  2. 必须在运算符重载中使用引用,才能获得视觉上令人满意的结果。通常优先使用引用作为函数参数,除非需要NULL值。一个特殊的规则允许一个临时对象被传递给一个const引用。

  3. 严格相互比较?指针。

“经常会有关于含引用和指针语句的执行方法混乱”

我不知道这意味着什么。如果您将代码转换为带指针的等效代码的引用,则它应该可以工作。

引用是看起来更好,并有一些使用限制的指针。就这样。

+0

我的意思是我经常对逻辑上应该在代码中的特定位置使用什么感到困惑。反正点了!谢谢 – iluvthee07

+2

@ iluvthee07这通常是个人选择的问题,除非对引用的限制意味着必须使用指针。不要为决定而痛苦! –

1

在C++:

  1. 引用无法重新插拔和必须引用一个对象,非const指针可以改为指向别的东西和指针可能指向什么根本(nullptr)。它们都作为一些基础对象的句柄。
  2. 通常,指针主要用于智能指针来处理在堆上创建的对象,引用主要用于通过引用传递对象。
  3. 他们是不同工具和说一个比另一个更有用是没有帮助的。