C++ Primer之引用
来源:互联网 发布:猛将源代码修改数据 编辑:程序博客网 时间:2024/06/06 18:24
引用
写在前面的话(可忽略……灰话)!
引用与指针一直都是各种笔试与面试的常见的题目,而且在编程过程中往往会出现这样或那样的问题,最近又拿起了PRIMER来看,记下一点看书笔记。
引用与指针在C++中称作复合类型,这是相对于简单的INT等类型而言的。
1.引用
引用其实是一个左值引用。
1.1 定义
引用为对象起了另外一个名字,引用类型引用另外一种类型。引用并非对象,它只是给已经存在的对象起了另外一个名字而已。引用即别名!定义引用类型的方法将声明符写成&refVal,其中refVal为声明的变量名。
//refVal指向ival(是ival的另外一个名字)
int ival = 1024;
int &refVal = ival;
1.2 初始化
引用是需要初始化的,而且是必须初始化的。
对于一般变量,它们在初始化时,初始值会被拷贝到新建的对象中。然而在定义引用时,程序会把引用与它的初始值进行绑定在一起,而不是简单的将初始值拷贝给引用。因而一旦初始化完成,引用将和它的初始值对象一直绑定在一起。而对于引用的特性它不允许一个引用绑定到多个对象,因此对于引用它必须被初始化之后才能使用。
//refVal指向ival(是ival的另外一个名字)
int ival = 1024;
int &refVal1= ival; //正确:refVal1被初始化为ival的值
int &refVal2;//报错:refVal2引用必须初始化
1.2 引用的操作
在定义一个引用之后,对于引用的所有操作,其实就是针对于被引用绑定的对象的操作。而获取引用的值其实就是获取与引用绑定的对象的值。当将引用作为初始值时,其实际上是以与引用绑定的对象作为初始值。
refVal = 2;//把2赋值给指向的对象,此外是赋给了ival
int ii = refVal;//与执行ii = ival结果一样
//正确:refVal3绑定到了那个与refVal绑定的对象上,这里就是绑定到ival上
int &refVal3 = refVal;
//利用与refVal绑定的对象的值初始化变量i
int i = refVal;//正确:被初始化为ival的值
在应用引用时要注意以下几点:
- 引用必须初始化;
- 一个引用只能对应一个对象;
- 引用不能被初始化为字面值或者计算结果;
- 引用与对象的数据类型需要一致。
- C++Primer读书笔记之引用
- C++Primer 引用
- C++ Primer之引用
- C++Primer 学习笔记之指针和引用
- c++primer 2/23---引用
- const 引用(c++primer笔记)
- C++primer: 引用&与 const 引用
- c++ primer学习之-------引用
- C++ Primer之引用类型
- c++primer之sizeof
- c++primer之string
- c++primer之vector
- C++primer之sizeof
- C++Primer之字符串
- C++Primer读书笔记(2)-引用和类型
- C++Primer学习概要:引用和指针
- C++primer 学习(三)引用
- 《c++primer笔记》复合类型--引用
- mac os x python安装matplotlib 库 出错: Operation not permitted
- Python中值传递和引用传递区别
- Spark在windows下的安装
- PHP SESSION 回收机制
- tensorflow安装
- C++ Primer之引用
- cmake使用示例
- MFC对话框的picture控件中显示IplImage*格式图像
- 给category增加属性
- Spring IoC
- 操作系统处理机管理功能(1)之进程控制及进程同步
- 非阻塞模式(ioctlsocket)
- 在Predix平台玩转C#
- http协议的状态码