引用的基础知识 引入: 变量名,实际上是一段连续存储空间的别名,是一个标号(门牌号)。 程序中通过变量来申请并命名内存空间,通过变量的名字可以使用存储空间。 问题:对一段连续的内存空间只能取一个别名吗? 第一,引用的概念 (1)在C++中新增加了引用的概念; (2)引用可以看作一个已定义变量的别名 (3)引用的语法:Type& name = var; (4)引用做函数参数(引用作为函数参数声明时不进行初始化) 比如,有这么一个人,我们称作“姥姥”,也有人称呼是“外婆”,有人问你你姥姥是谁?或者问你你外婆是谁?我们知道这两个称呼指的是同一个人,你妈给了你姥姥一千块钱,你姥姥多了一千块钱,那么你外婆也就多了一千块钱,你外婆又给了你五百块钱压岁钱,那你姥姥也就是少了五百块钱。姥姥 == 外婆,通过修改外婆持有的资产数额,就修改了姥姥持有的资产数额! 运行以下程序,变量a的别名定义为b,我们修改a的值就修改了b的值,修改b的值就修改了a的值。 第二,通过引用交换两个变量的值 我们知道这个程序是无法实现交换两个数值的,如果想交换两个数值,按照以前的办法就是使用指针,这里不多说。 我们学习了引用之后可以通过引用来实现交换两个变量的值。 如下程序,x、y是实参,a、b是形参,将实参x、y赋值给形参a、b,a、b就是x、和y的别名,改a、b就是把x、y的数值改了。 最后说明一点:引用作为函数参数声明时不进行初始化。 注意:在写程序时,最初定义的函数是swap,调用函数时发现swap(x,y)和swap(&x,&y)都可以编译运行成功,匪夷所思! 原来C++自己有一个swap函数,因为我将我写的swap函数定义屏蔽后,发现依旧可以调用该函数!因此,后来改为myswap函数。 【C++】笔记系列均为原创,转载请注明转自微号:Lightspeed-Tech 或 AutoCode 更多精彩资料,请关注!
|