c++中的引用和个人的一些学习思考

关于引用的第一个小问题

在c++ primer第五版中文版中,说了这么一句:引用在初始化的时候必须绑定一个对象,且不可重现绑定,但是如果你输入以下代码

 int i = 0, j =0;
 int &r = i;
 r = j;

你会发现,居然没有报错! 难道是书上错了吗? 按照我的理解,书上并没有错,r = j,实际上不是重新绑定,而是把j的值赋给了r绑定的i上去。

引用的第二个小问题

还是在c++ primer中文版第五版中,指出引用本身并不是一个对象,所以不可以使用指针指向它。

然后我写出了如下代码

 int i = 0;
 int &r = i;
 int *p = &r;

居然又没有报错,到底是我有问题还是书有问题?

但是有了上面一个问题的思考,这个问题也就不难理解,使用一个指针指向一个引用,实际上指向的是这个引用绑定的对象,按照这种思路理解,上面的代码是没有任何问题的。

确定变量类型的小技巧

我们常常会遇到很复杂的类型,例如

const int *p;
int const *p;
int * const p;
const int * const int p;

遇到这种比较长的变量类型申明时,我们可以采取从右向左读的办法,例如

cont int *p就是一个指向const int类型的指针,而int * const p就是一个常量指针,指向一个int类型的数据

你可能感兴趣的