文章目录
一、引用的概念
1.初识引用
int a=5;
int &a1=a;
int &a2=a1;
此代码中,第一行我们都知道它定义了一个int型的变量,取名为a,并对其赋值为5.
而第二行,第三行就是引用。
我们可以将其理解为在第二行我们对a取了一个别名为a1
在第三行为a1取了一个别名为a2
我们对a别名的修改就等同于对a的修改。
2.引用与指针
引用看起来是指针的强化版,在很多函数调用时,我们都会摒弃指针,而使用引用。在java,python中引用甚至可以完全取代指针。
而在C++中,由于其在引用一个实体后无法改变,所以它的使用是与指针结合起来的。
二、引用的作用以及使用规范
1.引用参数
void f1(int *x,int *y)
{
int tmp;
tmp=*x;
*x=*y;
*y=tmp;
}
void f2(int &x,int &y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
}
int main()
{
int a=5,b=4;
f1(&a,&b);
f2(a,b);
return 0;
}
1.两函数功能是否相同
第一个函数是很简单的swap函数,其将参数地址传递过来,通过对地址指向值的修改,完成交换。
第二个函数是我们用引用的方式写成的。
我们在调用时,填入实参,此时函数既不是值传递,也不是地址传递。而是对参数生成了别名,我们在函数中对其别名的操作就等同于对其本身