C++ 引用

对一个数据可以建立一个“引用”,作用是为一个变量起一个别名。这是C++对C的一个重要扩充。

int a; //定义a是整型变量

int &b = a; //声明b是a的引用

声明了b是a的引用,即b是a的别名。经过这样的声明后,使用a或b的作用相同,都代表同一变量。

可以这样理解引用:声明b为引用,并不需要另外开辟内存单元来存放b的值。b和a占内存中同一个存储单元,它们具有同一地址。即使变量b具有变量a的地址。

注意:

1. 引用不是一种独立的数据类型,对引用只有声明,没有定义。必须先定义一个变量,然后声明对该变量建立一个引用(别名)。

2. 声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量。当引用作为函数的形参时不必在声明中初始化,它的初始化是在函数调用时的虚实结合实现的,即作为形参的引用是实参的别名。

3. 在声明一个引用后,不能再使之作为另一个变量的引用。比如声明了b是变量a的引用后,在其有效作用范围内,b始终与其代表的变量a相联系,不能再作为其他变量的引用。

int a1,a2;

int &b=a1;

int &b=a2; //错误。试图使b又变成a2的引用,不合法

4. 不能建立引用数组。如:

int a[5];

int &b[5]=a; //错误,不能建立引用数组

int &b=a[0]; //错误,不能作为数组元素的别名

5. 不能建立引用的引用。如:

int a=3;

int &b=a; //正确

int &c=b; //错误

6. 不能建立指向引用的指针。 如:

int a=3;

int &b=a;

int *p=b; //错误

7. 可以取引用的地址。如已经声明b是a的引用,那么&b就是变量a的地址&a.

int *pt;

pt=&b; //把变量a的地址&a赋给指针变量pt

8. 区别引用声明符& 和取地址运算符&。出现在声明中的&是引用声明符,其他情况下的&是取地址运算符。

二者形式相同,含义不同。在声明了引用之后,在使用它时不带&,而只用引用的名字(如b,而不是&b)。

 

原文链接: https://www.cnblogs.com/2007winter/archive/2012/09/30/2709437.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++ 引用

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/64264

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午11:22
下一篇 2023年2月9日 上午11:22

相关推荐