初学引用@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做出的修改

因此可以用引用来做双向传值

posted on 2018-03-01 21:28  晴未  阅读(92)  评论(0编辑  收藏  举报