引用、const引用和非const引用

引用

引用构造了对象的一个同义词,是C++对象的另一个名字。在实际程序中,引用的主要作用是作函数的形参。

什么是引用

引用是一种复合类型1,它通过在变量名前添加“&”来定义。在使用引用的情况下,每一种引用类型都关联到某一其他类型。C++不能定义引用类型的引用,但是可以定义任何其他类型的引用。

int a = 100;
int &refa = a;  // &refa引用a
int &refa = b;  // error:引用对象必须初始化
int &refa = 10;  //error:右值必须是对象

什么是const

const是一个限定符,被const限定的变量其值不会被改变。所以,const变量必须在定义时就被初始化。

const int bufSize = 512;

如上定义了一个const变量bufSize。编译器将在编译过程中把用到该变量的地方都替换成对应的值。也就是说,编译器会找到代码中所有用到bufSize的地方,然后用512替换。

const引用和非const引用

const引用是指向const对象的引用。const引用必须被定义为const类型。

const int a = 100;
const int &refa = a;  // correct:引用和被引用都是const类型
int &refa = a;  // error:引用不是const类型

const引用可以读取但是不可以被修改引用对象,任何对const引用进行赋值都是不合法的,它适用指向const对象的引用,而非const的引用不适用于指向const对象的引用。


  1. 复合类型是指用其他类型定义的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值