关于引用的第一个小问题
在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
类型的数据
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。