C++/C中指针和引用的区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值