【C++】引用与指针
引用只是给已经存在的变量赋一个别名,通过此别名操作变量与通过变量本名操作是一样的效果。
为一个变量声明了引用后该变量就可通过两个名称来操作了。
例如:
int a = 10;
int &b = a;
这样之后通过a与b均可来操作存储10的这块地址空间。
而指针是一种变量类型,可被视为与int、char等相平行的一个概念,只不过其中存储的值代表着一个数据对象(data object)的地址。
引用的特点
引用的特点大致有以下四个:
-
引用定义时必须初始化
int &a;
指针可以不初始化,这就是所谓的”野指针“
int *a;
-
引用不可更改
也即不可:int a = 20; int b = 10; int &c = a; &c = b;
而指针可以被修改。
-
不能为常量值创建引用
-
数组不能定义引用
引用的应用
引用的一个主要应用是将其用于传递参数来提高代码可读性并减少出错。
(据说是因为看不惯指针解引用时所需要的 *。
void swap ( int *x, int *y )
{
int temp = *x;
*x = *y;
*y = temp;
}
用引用传参,则是:
void swap( int &x, int &y )
{
int temp = x;
x = y;
y = temp
}