问一个关于const、指针和引用混合的问题(如果有人愿意详细讨论,我会加分)
这个问题来源于潘爱民和张丽合译的《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对象呢?难道其中有强制类型转换?