核心:
对引用的操作与对变量直接操作完全一样
注意点:
引用并非是地址运算符
编译器一般将引用看作是const指针,即只占用指针大小空间
引用只能在初始化的时候引用一次 ,不能更改为转而引用其他变量。
使用方式:
基础引用:
定义引用的表示方法与定义指针相似,只是用&代替了*
const引用:
防止改变引用的值,使变量安全
返回值是引用类型:
当函数返回引用类型时,没有复制返回值,相反,返回的是对象本身。
//**千万不要返回局部对象的引用!千万不要返回指向局部对象的指针!
//*当函数执行完毕时,将释放分配给局部对象的存储空间。此时对局部对象的引用就会指向不确定的内存!返回指向局部对象的指针也是一样的,当函数结束时,局部对象被释放,返回的指针就变成了不再存在的对象的悬垂指针。
//*函数的返回值用于初始化在调用函数时创建的临时对象(temporary object),如果返回类型不是引用,在调用函数的地方会将函数返回值复制给临时对象。
相关文章
- linux 设备树及节点引用【转】
- 在 Spring 框架中处理循环引用和 Bean 覆盖
- 《JS高程》引用类型学习笔记
- C++ 循环引用和解决办法
- golang结构体struct递归引用异常解决办法: invalid recursive type: xxx refers to itself-解决方法:将这个Child字段指向的类型Person改为指针类型, 即 Child *Person ; 因为go语言中的任何一个指针类型都是可以确定其大小的!
- [C#] .NET Core项目修改project.json来引用其他目录下的源码等文件的办法 & 解决多框架时 project.json 与 app.config冲突的问题
- 【JS红宝书学习笔记】第6章 集合引用类型
- 【读书笔记】iOS-ARC-Xcode检测循环引用
- http网页是否能引用https资源/调用https接口?https网页是否能引用http资源/调用http接口?
- CodeBlocks工程如何引用其他文件夹的头文件和源程序