引用的一些理解

引用

**本质:**引用就是变量的别名

引用的初始化并不是值的拷贝,而是将引用方与被引用方绑定在一起。引用在定义时必须初始化,从而与一个变量绑定在一起。初始化后,引用不能再绑定其他变量。

**最常用的场合:**函数参数的传递

通过将函数参数声明成引用的另一个好处是可以避免对象的拷贝。如果函数参数占用了很大的内存空间,在值传递时就可能拷贝整个对象的空间,很多时候这种拷贝工作时没有必要的。

特点:

1.引用不会产生新的空间

2.引用必须初始化

3.一个变量可以有多个引用,引用也可以有引用

int a = 10;
int &b = a;

常引用

const int &a = 10;

常引用的初始化操作实际上分两步执行:首先将常量存放在一个临时变量中,然后使用这个临时变量初始化常量引用

int temp = 10;
const int &a = temp;
14.1 引用和指针的区别
  • 指针是变量的地址,引用是变量的别名

①sizeof运算符的运算结果不同,

指针的sizeof运算结果是指针本身所占的空间,为4个字节;而引用进行sizeof运算得到的是原变量占用的空间,返回结果取决于原变量的数据类型

②自增++运算符的意义不同

指针进行自增运算符是对指针本身自增,使指针指向下一个地址空间,指针指向的变量没有改变;引用进行自增运算是对原变量的自增,改变原变量的值。这种性质可以扩展到其他操作符上

  • 指针可以不初始化,引用必须初始化
  • 指针本身可以被修改,引用本身不能被修改
  • 指针可以为NULL,引用不能为NULL
  • 指针可以定义二重指针,引用不能定义二重引用
  • 指针需要先解引用,引用直接用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值