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++引用的归纳总结的主要内容,如果未能解决你的问题,请参考以下文章

PHP 面试归纳总结

java 基础归纳总结

ECharts使用总结归纳

java中static与final关键字归纳总结

linux设备驱动归纳总结:1.中断的实现

DevOps之归纳总结