关于引用的实质探求

本文探讨了C++中引用的概念,指出引用实际上是一个指针常量,不能改变引用本身(即指针地址),但可以修改其所指向的值。同时,解释了指针常量和常量指针的差异,前者指针所指值可变,指针不可变,后者则相反。理解这些概念有助于避免拷贝构造函数的无限递归问题。在《C++ Primer》一书中,指针常量被称为常量指针,而常量指针则称为指向常量的指针。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	最近复习到了引用的概念,所以现在先写下原理:
	int g=100;	
	int &m=g;(实质:int  * const m=&g)

上述是:原理是把m相当于一个指针常量,只能更改m所指向的值,但是不能更改m的地址的值,还有一点要注意***用的时候就是不要把m当成指针了***

	然后讲下指针常量与常量指针的区别,
	***int const *m;(m指针所指向的值能改,但是指针的值不可以更改,常量指针)
	int * const m;(与上述相反,指针常量)***

记得时候记住一个,然后记住另一个就行了,记住的秘诀:看const在星号的前面还是后面,在前面就是常量指针,在后面就是指针常量.
在这里插入图片描述
懂了这个知识点后,就理解了为什么引用传递不会调用成员函数,从而避免了拷贝构造函数的无限递归过程.
还有一点蛮重要的,在[c++ primer]这本书里面没有指针常量这种说法,而对于指针常量在书中就叫做常量指针,而我们所说的常量指针在书中描述为:指向常量的指针,更多的详情需要小伙伴去自己查阅书籍了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值