- 内存
- 指针有自己的内存空间,引用只是别名;
sizeof
指针,显示指针的大小为4,sizeof
引用,显示被引用对象的大小;
- 赋值
- 指针可以被初始化为
NULL
,引用必须被初始化为一个已有对象的引用;指针在使用中可以指向其他对象,引用只能是一个对象的引用,不能改变;
- 指针可以被初始化为
- 函数
- 作为函数参数传递时,指针需要解引用才可以对对象进行操作,引用不需要,而且对引用的修改会改变引用所指向的对象;
- 如果返回动态内存分配的对象或者内存,必须使用指针,引用可能引起内存泄漏;
- 层级
- 指针可以有多级指针,引用只有一级;
- 其他
- 指针可以用
const
修饰,而引用不可以用const
修饰; - 指针和引用使用++运算符的意义不一样;
- 指针可以用
C++/C中指针和引用的区别
最新推荐文章于 2024-09-15 11:40:06 发布
本文详细探讨了指针和引用在内存、赋值、函数传递及层级等方面的差异。指针有自己的内存空间,大小固定,可以为空,且能改变指向;而引用是对象的别名,不占内存,必须在定义时初始化且不可改变。在函数参数中,引用无需解引用即可操作对象,但可能导致内存泄漏。此外,指针支持多级,引用仅有一级,并且const修饰指针允许不变性,但不可用于引用。最后,指针和引用的递增操作意义不同。
摘要由CSDN通过智能技术生成