- 内存
- 指针有自己的内存空间,引用只是别名;
sizeof
指针,显示指针的大小为4,sizeof
引用,显示被引用对象的大小;
- 赋值
- 指针可以被初始化为
NULL
,引用必须被初始化为一个已有对象的引用;指针在使用中可以指向其他对象,引用只能是一个对象的引用,不能改变;
- 指针可以被初始化为
- 函数
- 作为函数参数传递时,指针需要解引用才可以对对象进行操作,引用不需要,而且对引用的修改会改变引用所指向的对象;
- 如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄漏;
- 层级
- 指针可以有多级指针,引用只有一级;
- 其他
- 指针可以用
const
修饰,而引用不可以用const
修饰; - 指针和引用使用++运算符的意义不一样;
- 指针可以用