初学数据结构的时候,大家可能经常可以看到在线性表的一些操作函数中会有**&**的使用,初学者或者跨考考生或许会对这一点的使用存在着一段不短时间的疑惑。今天就这一点展开简单的描述。
实质上,在C++中引用符号的使用大家可以看成是c中指针的使用。
下面就以初学c中经常举例的交换两个值的函数进行简单的示例,简单看一下代码和运行结果,你马上就会对这一点的使用有了更深的理解。
代码如下附上:
#include<iostream>
using namespace std;void swap1(int a,int b);
void swap2(int &a,int &b);int main()
{int a=3,b=5;swap1(a,b);cout<<a<<" "<<b<<endl;swap2(a,b);cout<<a<<" "<<b<<endl;
}void swap1(int a,int b)
{int t=a;a=b;b=t;return;
}
void swap2(int &a,int &b)
{int t=a;a=b;b=t;return;
}
运行结果:
在简单使用上,有这一部分的理解差不多就已经够用了,想要深入学习的话,还是多看一下一些API文档和其他大佬的见解吧。
二更:
引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
不要害怕卷
毕竟读书破万“卷”
生而为人,只来人间一次,谁又能做到双手一摊而甘拜下风。