我是C ++的初学者(来自Java)。
我试图围绕正常的变量,指针和引用。我得到的正常变量。指针也是。引用让我感到困惑。
我认为我理解引用背后的想法:首先,它们会被自动解除引用'指针。我们可以简单地执行*pointer = something
,pointer->doStuff()
等,而不必执行(*pointer).doStuff()
,reference = something
(这是reference.doStuff()
的语法糖)和类似内容。
其次,它们是更安全的指针,因为它们无法重新定位,您无法对它们进行算术运算。
但我还有最后一件事要确定:
我非常确定参考变量出现在表达式或语句中的哪个地方,它会自动地'被翻译成它引用的变量的名称。所以无论何处我都看到了引用的名称,我可以将它视为被引用变量的名称,这是正确的。
这意味着:您从不对引用进行操作,您始终对它们引用的对象进行操作。您无法存储引用,您始终存储它们引用的对象。等
这个假设准确吗?