C++学习笔记,引用变量
来源:互联网 发布:mysql教程pdf 编辑:程序博客网 时间:2024/06/06 01:36
转自:http://www.cnblogs.com/csucat/p/4574947.html
(1)使用引用变量使用可以直接对原数据进行操作而不是该数据的拷贝,节省了时间和空间,尤其是对于结构体以及类的一个对象来说,对于普通类型数据来说,传值调用是不错的选择。
(2)引用变量声明,
int rats;
int & rodents = rats; (int & means “reference to an int variable”)
定义了一个rodents,它是指向rat的引用变量,初始化以后,rats and rodents有相同的值,指向相同的地方,可以互换使用,通俗的说,就是“一个东西,两种叫法”。
(3)rv必须在声明的时候初始化,初始化以后,指向的地方不再变化,相当于const 类型的指针,后续的赋值只能改变其值,不能改变地址。譬如
int & rodents = rats; 相当于
int * const pr = &rats;
(4)当函数(function)的形参(formal argument)为指向const 类型的rv,编译器会在以下两种情况下产生临时变量,
- 当实参类型正确,但不是“左值(lvalue)”
- 当实参类型不正确,但是可以转换为正确类型
(5)C++ 11 标准引入了新的称为“右值引用(rvalue reference)”的语法,因此原来的引用现在称为“左值引用(lvalue reference)”
(6)函数返回引用与返回值这两种方式,有什么区别?
对于“返回值”这种返回方式,首先return语句后的对象,会被拷贝到一个临时内存中,然后改临时内存中的数据在被拷贝到调用函数的相应对象中,但是如果是“返回引用”,return语句后的对象直接拷贝到调用函数相应的对象中,更快。
(7)const 类型的引用返回,有什么用?
使用const 类型的引用返回,可以避免对返回值进行修改
(8)不要返回一个存储类型只是local的变量的引用,因为当程序执行完该变量所在区域,该变量将不再存在,因此这是错误的设计。例子
int & test (int & x)
{
int temp;
temp = x;
return temp;
}
上述例子中,temp在test函数执行完毕后,将不再存在,因此返回temp的引用,程序将会出错奔溃
- 【C++】学习笔记四十——引用变量
- C/C++中关于地址、指针和引用变量的学习笔记(十) : 引用型变量
- C++学习笔记,引用变量
- C++学习笔记十四之引用变量&
- C/C++中关于地址、指针和引用变量的学习笔记(一)
- C/C++中关于地址、指针和引用变量的学习笔记(二) : 数组
- C/C++中关于地址、指针和引用变量的学习笔记(三) : 结构
- C/C++中关于地址、指针和引用变量的学习笔记(四) : 函数
- C/C++中关于地址、指针和引用变量的学习笔记(五) : 指针
- C/C++中关于地址、指针和引用变量的学习笔记(六) : const和void
- C/C++中关于地址、指针和引用变量的学习笔记(七) : sizeof和typedef
- C/C++中关于地址、指针和引用变量的学习笔记(八) : 命令行参数
- C/C++中关于地址、指针和引用变量的学习笔记(九) : 内存结构
- 【C++】引用变量
- C++引用变量笔记
- C++primer学习笔记--右值引用
- Linux 学习笔记【2】 引用变量
- C++学习笔记29,引用变量(1)
- C_逻辑题:海盗很厚道
- 在salesforce中实现鼠标悬停显示提示框效果,并对显示框内容进行微缩页面布局
- 利用Solidworks Motion将带有质量信息和关节约束的三维模型导入ADAMS
- IntelliJ 创建main函数快捷
- 查看SQL Server有几个 NUMA 节点及CPU情况
- C++学习笔记,引用变量
- 初学android自定义Camera拍照并查看图片
- procrank和dumpsys meminfo的pss大小不同的原因
- 十五、不可控组件
- 交换两个数组的内容
- 基于Android平台的身份证识别技术
- php开始认识之旅.1
- c#多线程
- java基础语法