const int *&pa=&b为什么不合法?该如何处理

const int *&pa=&*b为什么不合法?
const   int   a=10;
const   int   *b=&a;
const   int   *&pa=&*b;     //为什么这句不合法?
cout < <&*b < <endl;           //为什么这句合法?

------解决方案--------------------
&*b产生的是一个临时(无名)对象
const int *&pa,(非const)引用按C++标准不可以加在临时对象上。
所以,需要const int * const & pa = &*b;