const int & ival1 = 0;
const int * const pival = &ival1;
const int * const &rpival = &ival1;
cout << typeid(pival).name() << endl; // Output: int const * ??
cout << typeid(rpival).name() << endl; // Output: int const * ??
//pival++;
typeid(pival).name()
typeid(rpival).name()
和声明差距太大了啊,为什么会是这样的输出呢?
另外,
int i = 0;
int &ri = i;
cout << typeid(&ri).name() << endl; // int const *
我觉得 typeid(&ri).name(): int * const 更符合引用的语义,大家觉得呢?
不对的地方请大家指出,推荐文章也可以,多谢!