本文最后更新于 917 天前,其中的信息可能已经有所发展或是发生改变。
众所周知,C 语言存在一个叫做指针的东西,我们可以用指针来指向一个值的内存地址,然后进行内存地址各种操作。但是在 C++ 中,又多了一个叫做引用的东西,这二者之间存在着细微的差别,通过研读了知乎上的一篇文章(下),对于我之前不太明白的地方,作出了如下小结:
- 指针可空,引用不可空
- 指针可以改变指向,也就是说转而指向其他对象,但是引用却是不可变的
- 指针本身的意义事实上是内存地址,引用本身的意义是对象本身
也就是说,这个所谓的引用,其实就是 Java 实参中传递的那个对象的地位,只不过这个引用还可以额外更改对象实参的值罢了。
对于 C++ 来说,如果直接传入一个对象,而不是一个对象引用的话,那么 C++ 实际上会调用对象的拷贝构造函数,深拷贝一份对象到方法实参