C++中引用

引用都是不可以修改的,在创建的时候就要赋值,一经赋值就不能修改。

所以不存在像指针一样的底层和顶层之分,从某种意义上也可以说都是底层的

int i = 3;
const int &r_int = i;

此时const修饰int,表明是一个对常量int的引用,还有,应用不能绑定一个右值,因为右值在栈中,是临时的。一下代码是不正确的

const int &r_int = 3;

还有如果变量、表达式被括号括起来,表示取该变量的引用,如

//返回int
auto get_add_v(int other, int anther){
	return other + anther;	
}

//返回int的引用
auto get_add_r(int other, int anthor){
	return (other + anther);
}

还有除auto之外,decltype可以表示推断类型

下面这个例子是我今天遇到的一个问题

int i = 3;
decltype(i) i2 = 5;
const decltype((i)) i_r = i2	//则,i_r为int引用
i_r = 4;
cout << i_r << endl;		//输出为4

可以肯定,i_r引用的值被改变了,decltype((i))是一个对int的引用,const没有修饰int,我这样解释不知道正确不

转载于:https://my.oschina.net/depeng414/blog/3078645

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值