博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 引用
阅读量:5155 次
发布时间:2019-06-13

本文共 938 字,大约阅读时间需要 3 分钟。

对一个数据可以建立一个“引用”,作用是为一个变量起一个别名。这是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

你可能感兴趣的文章
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty's Blocks
查看>>
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
js兼容公用方法
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>