指针和引用
c++ 11新增了“右值引用”,这里的引用特指“左值引用”。
(1)定义:引用是为变量另起一个名字,它和这个变量实质上是同一个东西。指针是一个变量,它存储的是一个地址,指向内存的一个存储单位。
(2)是否为空,是否需要初始化,初始化后是否可以更改: 引用是为一个已经存在的变量起别名,定义的时候就必须初始化,一旦绑定之后不能修改;而指针可以为空,定义的时候可以不初始化,指针的值初始化后不可以改变。
(3)指针可以有多级,但是引用只能是一级
(4)”sizeof引用”得到的是所指向的变量(对象)的大小,而”sizeof指针”得到的是指针本身的大小;
(5)如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄漏;
解释: