C++引用的归纳总结
Posted LC编程开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++引用的归纳总结相关的知识,希望对你有一定的参考价值。
引用的归纳总结
(1) 定义一个变量的时候,需要指定变量的数据类型。例如,int a;此时,定义int类型的变量a,数据类型是int类型。
但是,对于引用变量,引用并不是一种独立的数据类型,它必须与某一种类型的数据相联系。声明引用时必须指定它代表的是哪个变量,即对它初始化。例如:
int a; //定义int类型变量a;
int &b = a; //正确,指定 b 是整型变量a 的别名
int &b; //错误,没有指定 b 代表哪一个变量,定义引用的时候,没有初始化,是错误的操作!
float a; //定义float类型变量a;
int &c = a; //错误,声明c 是一个整型变量的别名,而a 不是整型变量
注意:声明引用c是int类型,设置它引用变量a,而变量a是float类型,不是合法的代码,不允许类型不匹配的引用。
(2) 引用与其所代表的变量共享同一个内存单元,系统并不为引用另外分配存储空间。实际上,编译系统使用引用和其代表的变量具有相同的地址。测试例子如下:
程序运行结果如下:
可以看到,输出变量a 的地址和引用变量b 的地址是相同的,这就表示了引用的地址就是其代表的变量的地址,变量a 和 引用变量b 代表的是同一个存储单元。
(3) 当看到 &a 这样的形式时,怎么样区别是:声明引用变量 还是 取地址的操作呢?
请记住:当 &a 的前面有类型符时(如 int &a),它是对引用的声明;如果前面没有类型符(如 p = &a),此时,& 就是取地址运算符。
(4) 对引用的初始化,可以用一个变量名,也可以用另一个引用。如:
int a = 3; //定义a 是整型变量
int &b = a; //声明b 是整型变量a的别名
int &c = b; //声明c 是整型引用b 的别名
这是合法的,这样,整型变量 a 有两个别名,即 b 和 c。
(5) 引用在初始化后不能再被重新声明为另一个变量的别名,如:
int a = 3, b = 4; //定义a 和b 是整型变量
int &c = a; //声明c 是整型变量a 的别名
c = &b; //企图使c 改变成为整型变量b 的别名,错误--- 因为,引用不可以改变,它的唯一赋值就是在初始化的时候
int &c = b; //企图重新声明c 为整型变量b 的别名,错误
在C++中变量的引用是一项重要的技术,特别是在错综复杂的函数调用中,函数的参数可以定义为引用,那么,就可以在函数中操作形参,就是操作实参对象的引用,实际操作实参变量。不存在形参是实参的拷贝。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
以上是关于C++引用的归纳总结的主要内容,如果未能解决你的问题,请参考以下文章