C++ 高频面试题指针和引用

15、请你理解的c++中的**引用和指针

指针是指向一块内存地址的变量,这个变量可以指向其他地址;引用是一个变量的别名,只能是一个变量的别名。一个变量的引用可以转为指向它的指针。

 1.初始化不同,引用使用时必须初始化,且只能指向一个变量,初始化不能指向其他变量;指针不一样,指针使用时不必初始化,可以指向nullptr,初始化后仍可以改变指向的地址。

  2.作为函数参数传递时,引用不需要内存拷贝,所以也就不需要申请内存,因此当函数参数传递时,很多时候使用&或者const&传递参数节省内存。

 3.作为函数参数传递时,如果想改变传递进函数参数的原始变量的值,引用改变后改变原始变量,而指针的值改变后并不会改变原始变量,因为它只是一份内存副本,如果想达到改变的效果,使用**。

4.引用的++ 是变量本事的运算,而指针的++,是内存地址的++。

5.如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄漏。

6.不要返回局部变量引用,返回对象的引用最好const变量。

7.操作符<< 和 >> =返回引用,而操作符+-/*的返回对象不能是引用。
 

猜你喜欢

转载自blog.csdn.net/wwxy1995/article/details/88771739