初学引用@C++
使用函数,主调函数单项传值,而形参的作用范围只有被调函数,一旦被调函数结束,形参被释放,主调函数没有办法的到多个形参的值(单个形参传值可以用return语句),
比方说对于以下函数
void f(int a ,int b)
{
}
int main(void)
{
int x=5,y=6;
f(x,y);
}
调用函数的时候发生了什么
实际上是
int a=x;
int b=y;
这样单向传值
在函数f中对a和b做任何更改都不会影响x和y的值
当函数调用结束 a和b被释放
那通过什么方法使得被调函数对数据的处理能影响到主调函数呢 这时候就需要用 引用
引用类型
引用(&)是标识符的别名
例如
int i , j;
int &ri = i;//此处定义了int类型的引用ri,并将其初始化为对变量i的引用,即可以理解为i有一个别名ri
//注意 :定义了一个引用以后,立马就要将它和一个已经存在的变量联系起来,一个单独存在的别名没有任何意义
//再次强调:定义引用一定要初始化
j = 10;
ri = j; //相当于i = j
//一旦一个引用被初始化,它就不能改指其他对象,
//为什么需要引用 最重要的一点是 引用可以作为函数的形参 实现函数的双向传递
为什么可以实现
对于以下函数
void f(int& a ,int& b)
{
}
int main(void)
{
int x=5,y=6;
f(x,y);
}
主调函数传值可以理解为以下情况
int &a=x;
int &b=y;
那么a和b就是作为对x,y的引用而存在的
也就是a就是x的别名 对a做出的修改就是对x做出的修改
因此可以用引用来做双向传值