指针和引用的区别:
1.引用必须初始化即无法定义空引用,指针定义可以不初始化,即空指针或者野指针。
2.引用一旦初始化,无法再引用其他对象,指针则 可以重新指向其他对象即重定向。
3.可以定义指针的引用,但无法定义引用类型的指针变量。
4.可以定义指向指针的指针(N级指针),但只能定义一级引用。
C++11标准下可以定义
int &&y = 10;
表示右值引用;
不像int** y表示二级指针;
如何评价 C++11 的右值引用(Rvalue reference)特性?
详解C++右值引用
5.可以定义存放指针的数组,但是无法定义存放引用的数组。
注意:
引用即对象的别名,无实体所以无法定义指向引用的指针。但是引用一旦初始化,就可以像其引用的目标一样使用。
即可以对引用取地址,实际取得是其引用的目标的地址。
如:
int x = 10;
int &y = x;
cout << &x << ' ' << &y << endl;