有关 C++ 指针(*)和引用(&)区别的小结

2022-10-27 09:59:36 浏览数 (1)

本文最后更新于 232 天前,其中的信息可能已经有所发展或是发生改变。

众所周知,C 语言存在一个叫做指针的东西,我们可以用指针来指向一个值的内存地址,然后进行内存地址各种操作。但是在 C 中,又多了一个叫做引用的东西,这二者之间存在着细微的差别,通过研读了知乎上的一篇文章(下),对于我之前不太明白的地方,作出了如下小结:

  • 指针可空,引用不可空
  • 指针可以改变指向,也就是说转而指向其他对象,但是引用却是不可变的
  • 指针本身的意义事实上是内存地址,引用本身的意义是对象本身

也就是说,这个所谓的引用,其实就是 Java 实参中传递的那个对象的地位,只不过这个引用还可以额外更改对象实参的值罢了。

对于 C 来说,如果直接传入一个对象,而不是一个对象引用的话,那么 C 实际上会调用对象的拷贝构造函数,深拷贝一份对象到方法实参

参考文章

C 中指针与引用的区别 – 知乎

0 人点赞