&此运算符可以表示两种意思,需要明显的区分开来。
第一,取地址。
取地址,意思就是取变量的地址,用来获取首地址,在给变量赋初值时出现在等号右边;
第二,引用。
引用可以理解为“起外号”,例如int &b = a;那我们可以理解成b是a的外号,他们两个是同一个人。
那按照一般情况,引用是可以有多个的,因为一个人可以有多个外号。
那么根据概念可以定义:
引用在赋值=的左边,而取地址在赋值的右边,比如
int a=3;
int &b=a; //引用
int *p=&a; //取地址
还有在函数里,也可以这么写,可以理解为此处的int &i是某个int的别名。
int function(int &i)
{
} //引用
指针指向一块内存,它的内容是所指内存的地址;
而引用则是某块内存的别名,引用不改变指向。