C++复习:引用和指针

引用:一个变量的引用等价于这个变量,相当于这个变量的别名。
引用的特性:

  • 引用定义之初必须要初始化,且初始化后就不能再引用别的变量。
  • 引用只能引用变量,不能引用常量和表达式。
  • 常引用:加 const关键字

指针:指针是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。声明指针和声明一个无符号整数实质上并无区别。(来源维基百科)

引用和指针的区别

  • 指针是一个实体,而引用仅是个别名;
  • 引用只能在定义时被初始化一次,之后不可变;但指针可变。
  • 引用没有const,指针有const。
  • 引用不能为空,指针可以为空;
  • “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;
  • 指针和引用的自增(++)运算意义不一样
  • 引用是类型安全的,而指针不是 ,引用比指针多了类型检查

引用传参和指针传参区别

  • 指针传参本质上是值传递,传递的是指针的地址,被调函数的形式参数作为被调函数的局部变量处理,会在栈中开辟内存空间以存放由主调函数传递进来的实参值,从而形成了实参的一个副本。此时形参的地址与指针的地址相同,改变了形参指向的值也就改变了指针指向的值;但若是函数运行时将形参的地址改变,就不能改变指针指向的值。
  • 引用传参虽然也是传递了一个值,但这个值是指针地址的一个引用,一个别名。这样在调用形参时,实际上每一次都是一次间接寻址,引用与指针的地址“牢牢绑定”。只要改变引用指向的值,原指针指向的值也会随之改变。

参考博文:
添加链接描述
添加链接描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值