引用详解
Posted boost
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引用详解相关的知识,希望对你有一定的参考价值。
专业的C++代码会用到大量的引用,在C++中引用是变量的别名,所有对引用的修改都会改变被引用变量的值,可以将引用当作隐私指针,这个指针没有取变量地址和解除引用的麻烦(也可以将引用当作是原始变量的别名)。
1.引用变量
引用变量在创建的时候必须初始化
int a = 0; int &b = a; //work std::cout << "b:" << b << std::endl; //int &c = 0; //error
const int &c = 0; //work
值得注意的是:不能对创建引用直接“值传递”,除非这是一个const引用;
引用总是引用当初初始化的那个变量,一旦创建就无法修改变量,但是可以修改变量的值,比如:
int x = 1,y = 2; int &xRef = x,&yRef = y; std::cout << "X : " << xRef << std::endl; std::cout << "y : " << yRef << std::endl; //X : 1 //y : 2 xRef = &y; //error
为什么错误呢?
因为xRef是int&,而y得地址是一个指针。所以两者而无法赋值。
如果将一个引用赋值给另一个引用呢?
xRef = yRef; std::cout << "X : " << xRef << std::endl; std::cout << "y : " << yRef << std::endl;
结果是:
X : 2
y : 2
看出这里只是将y的值传递给xRef(也就是x),但是XRef还是x得引用。
以上是关于引用详解的主要内容,如果未能解决你的问题,请参考以下文章
Android App 在片段中创建 ListView 引用时关闭
解决未能加载文件或程序集“Newtonsoft.Json ...."或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)(代码片段