C++和C语言的区别(五)——变量引用

14 篇文章 0 订阅

引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

(1)引用的实现

int main()
{
	int a = 10;
	int &b = a;
	int *p = &a;
}

对于这一段代码,我们通过编译器查看该代码的汇编码如下:

可以看到引用操作和指针操作的汇编码完全相同,所以我们就可以知道,引用如何做到

①引用的底层是一个const的指针

②因为在编译期把出现该引用的地方替换成指针的解引用。

(2)引用必须初始化

通过引用的底层我们知道,const指针无法改变,所以必须初始化。

(3)引用不可以改变方向

可以通过两方面来理解:

①const 指针不能改变

②引用重定义形式不能确定、引用改变方向会出现逻辑错误

int main()
{
	/*此段只是说明问题
	*int a = 10;
	*int &b = a;
	*int c = 20;
	*&b = c;//1.使用这种形式还是下面的形式
	*int &b = c;
	2.上面b已经和a相等了,下面b和c相等,那是不是a和c相等
	*/
}

(4)不能把常量的引用或地址泄露给非常量的引用或指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值