引用(&)与常量(const)

开门见山,C++中有三个东西,分别叫做:引用,常量,常量引用。下面阐述三者各自的语法和联系。

撇去什么string类型的引用不谈,举最简单的例子吧(int类型)。

1.引用

比如对int类型的引用如下:

int a=1;
int &b=a;

这里定义了一个(普通)引用 b ,它所指向的是int类型,所以可以把int类型的变量赋给它。

因此这样做是错的

int &b=1;//b所指向的是int类型的变量,不是字面量
int &b;//b作为引用必须初始化,它不能脱离实际变量而存在

但是可以通过引用改变它所指向的变量:

int &b=a;
b=3;//a,b的值同时变成了3

嗯,好像对于引用就这么多性质。

个人感觉:引用就像是一个指针,它可以改变指向变量的值,换句话说引用是变量的另一个名字,引用的使用承担了指针的一部分功能,而且更加实用和简洁。

附:(指针实现上述功能代码)

int a=1;
int *b=&a;//取地址
*b=3;//a,*b同时变成3

2.常量

同样常量也必须初始化:

const int a=1;//如果不初始化,a的初值就会变成垃圾值而且无法修改
const int c=f();//初始化可以是一个表达式或函数,而引用则不行

一旦初始化以后,const所确定的值真正实现了无法修改(不然为什么叫常量....)

错误示例:

int &b=a;//错误,引用可以修改,这样做意味着a可以修改,而a是一个const类型的值

3.常量引用

这两个东西结合起来便有了这样的产物

int a=1;
int f(){}
const int c=1;

const int &b=a或者f()或者c或者3;//可以初始化为一个int,const int,函数及表达式,字面量的值,但必须初始化

继承了引用和常量的特色,这产物似乎变得高级起来,连初始化都很强大呢(但不可以修改值QAQ)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值