c++-基础知识-引用

引用的概念:

引用就是变量的别名,因此引用又称为别名,对一个变量的引用的操作,实际上都是对原来的变量的操作。

int a;

int &b = a;

声明b是a的引用,&是引用声明符,不代表地址。对变量a声明引用并不会另开辟内存单元,b和a代表同一变量单元。


1.在声明一个引用时,必须同时使其初始化,即声明它代表哪一个变量。


2.引用并不是一种独立的数据类型,必须与某一种类型的数据相联系。


3.对引用的初始化,可以使用一个变量名,也可以用另一个引用。

int a=3; int &b = a; int &c = b; 合法的,a有两个别名:b,c


4.引用在初始化后,不能再 被重新声明为另一变量的别名

int a=4,b=4; int &c = a; int &c=b; 错误


将引用作为函数参数

这是其主要作用之一,以扩充函数传递数据的功能。

在c语言中,传递函数参数主要有两种情况

1.将变量名作为实参。传给形参的是变量的值,传递是单向的,也就是函数内部形参的变量并不会传回实参。因为并不是同一个存储单元。

2.传递变量的指针,传递变量的地址,使得形参得到变量的地址,这是形参指针指向实参变量单元,传递就是双向的。


c++:利用传递变量的别名作为函数形参。

因此,总结,c++调用函数时有两种传递数据的方式,一种是常用的方法:将实参的值传送给形参,也就是形参是实参的一个copy,这种称为传值方式调用。另一种是将实参的地址传给引用型形参,称为引用方式调用。


引用的一些关键点:

1.不能建立void型的引用:void &a = 9; 错误

2.不能建立引用的数组 char c[6]="hello", char &rc[6]=c; 错误

3.可用const对引用加以限定,不允许改变该引用的值:int i = 5; const int &a=i; a=3;错误

但是它不阻止改变引用所代表的变量的值,也就是可以对i改变其值

4.可以用常量或者表达式对引用进行初始化,但必须用const声明:int i=5; const &a=i+3;表明不能改变该引用的值,因为已经是常量了。


对象的常引用

常引用多用做函数参数,这样在函数中就不能改变该参数的值,同时在调用函数时又不必建立实参的copy。

posted on 2018-01-01 20:02  sichenzhao  阅读(166)  评论(0编辑  收藏  举报

导航