C++知识要点整理03:引用

来源:互联网 发布:淘宝神笔怎么使用教程 编辑:程序博客网 时间:2024/04/29 10:51

1.引用

 对一个数据可以建立一个“引用”,它的作用是为一个变量起一个别名。这是C++对C的一个重要扩充。
 例如:int a;
       int &b=a;
以上声明了b是a的引用,即b是a的别名。经过这样的声明后,使用a或b的作用相同,都代表同一变量。可以这样理解引用:通过b可以引用a。注意:在上述声明中,&是引用声明符,并不代表地址。不要理解为“把a的值赋给b的地址”。在数据类型名后面出现的&是引用声明符,在其他场合出现的都是地址符。
 注意:
(1)引用不是一种独立的数据类型,对引用只有声明,没有定义。
(2)声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量。
(3)在声明一个引用后,不能再使之作为另一变量的引用。
(4)不能建立引用数组。
(5)不能建立引用的引用。也没有引用的指针。
(6)可以取引用的地址。
(7)区别引用声明符&和地址运算符&。

2.引用作为函数参数

(1)将变量名作为实参和形参。这时传给形参的是变量的值,传递是单向的。如果在执行函数期间形参的值发生变化并不回传给实参。因为在调用函数时,形参和实参不是同一个存储单元。
(2)用指针变量作形参,可以实现两个变量的值互换。这种方法仍然是“值传递”方式,只是实参的值是变量的地址而已。
(3)以引用作为形参,在虚实结合时建立变量的引用,使形参名作为实参的“引用”,即形参成为实参的引用。这就是地址传递方式
分析:
前两种方式传递的是实参的值。
前两种方式在调用函数时,对形参要分配存储单元。
第三种方式传送的是实参变量的地址而不是实参变量的值,这才是传址方式。