const的有关问题,绕不出来了…

const的问题,绕不出来了……
本帖最后由 czarten 于 2013-08-13 20:39:25 编辑

const int ival=1024;
const int* const &pi_ref=&ival;

//为什么第二句话是合法的?我的理解:
//pi_ref是一个引用,第一个const限定了不能通过pi_ref修改它所指向的对象的值
//而pi_ref所指向的对象的类型,是int* const
//但是右边的&ival不是只能赋值给const int*吗?
//const int*和int* const不一样吧?

------解决方案--------------------

const int ival=1024;
const int *const p = &ival;
const int* const &pi_ref = p;


*const p声明p是一个const指针,指向一个const int型的对象,既不能修改p所指向的对象,也不允许修改该指针的指向。

pi_ref是对上面指针的引用。