问一个关于const、指针和引用混合的问题(如果有人愿意详细讨论,我会加分)

antijpn antijpn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个问题来源于潘爱民和张丽合译的《C++ Primer 3e》
在第3.6节P88页中有这样一段话
"
const int ival=1024;
//仍然错误
const int *&pi_ref=&ival;
如果我们从左向右读这个定义,会发现pi_ref是一个指向定义为const的int型对象的指针。我们的引用不是指向一个常量,而是指向一个非常量指针,指针指向一个const对象。正确的定义如下:
const int ival=1024;
//OK:这是可以被编译器接受的
const int *const &pi_ref=&ival;
"

在const int *const &pi_ref=&ival这个语句中,pi_ref明显是一个const引用,而const引用应该是指向内存中的一个临时变量。按照C++ Primer中的解释这个临时变量应该是一个非常量指针?而非常量指针又如何指向一个const对象呢?难道其中有强制类型转换?
...全文

相关推荐

评论 13
收藏 已收藏
分享
返回顶部
antijpn
C语言 70,039 成员 243,237 内容