c++函数返回值是一个引用
函数返回值是一个引用的情况:
1.值是如何被返回的:
返回的值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。
如果函数返回引用,则该引用仅是它所引对象的一个别名。
2.不能返回局部对象的引用或指针:
函数完成后,他所占的内存空间将被释放,函数的终止意味着局部变量的引用将指向不再有效的内存区域。
const string &mainip(){string ret;if(!ret.empty())return ret;//错误,返回局部对象的引用elsereturn "empty";//错误,“empty”是一个局部临时量
}
3.引用反回左值:
左值:赋值运算符需要一个(非常量)左值作为其左侧运算对象,得到的结果也仍然是一个左值。当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(内存中的位置)。
char &get_val(string &str , string::size_type ix){return str[ix];
}
int main(){string s("a value");cout << s << endl;get_val(s,0) = 'A';//将s[0]的值改为A,调用是个左值,和其他左值一样也能出现在赋值运算符左侧。cout << s << endl;//输出A valuereturn 0;
}
c++函数返回值是一个引用相关推荐
- 14. 函数返回值为引用?
函数返回值可以是引用吗? 当然可以,只是在函数返回引用的时候需要注意几点.以下给出讨论! 函数在返回值的时候,会产生一个临时变量作为函数返回值的副本:而函数在返回引用的时候,不会产生副本!那么既然是引 ...
- 函数返回值 返回引用
先看看该链接讨论的问题作为热身.http://topic.csdn.net/u/20070616/13/2a6a1739-1a69-4829-a90f-fdb19a61e095.html 函数返回值和 ...
- C++函数返回值的规则
C++函数返回值的规则 [规则6-2-1]不要省略返回值的类型. C语言中,凡不加类型说明的函数,一律自动按整型处理.这样做不会有什么好处,却容易被误解为void类型. C++语言有很严格的类型安全检 ...
- C++ 笔记(15)— 引用(声明引用、引用作为参数、引用作为函数返回值、const 用于引用)
引用是变量的别名.也就是说,它是某个已存在变量的另一个名字.一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 1. 创建引用 要声明引用,可使用引用运算符 & ,如下面的 ...
- 2020-09-22C++学习笔记之引用1(1.引用(普通引用)2.引用做函数参数 3.引用的意义 4.引用本质5.引用结论 6.函数返回值是引用(引用当左值)7测试代码)
2020-09-22C++学习笔记之引用1(1.引用(普通引用)2.引用做函数参数 3.引用的意义 4.引用本质5.引用结论 6.函数返回值是引用(引用当左值)7测试代码) 1.引用(普通引用) 变量 ...
- c++函数返回值与引用
对于函数的返回值,看似简单,但并非如此,比如: int func(int a);该函数会返回一个int型,如果进行一个调用int result=func(3);会发生什么情况? 首先,func将返回值 ...
- python函数的返回值是返回引用吗_python-函数(上):函数返回值、函数调用、前向引用...
编程方法: 1.面向对象:类--class 2.面向过程:过程--def 3.函数式编程:函数--def #python中函数#函数的定义#打印一个佛祖镇楼 -> 一个功能点的解释 defpri ...
- “引用作为函数参数”与 “引用作为函数返回值”
一.引用作为函数参数 作为函数参数时引用有两种原因: 1.在函数内部会对此参数进行修改:2.提高函数调用和运行效率. 关于第一点,都知道C++里提到函数就会提到形参和实参.如果函数的参数实质就是形参, ...
- C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析
右值引用保存临时变量(函数返回值)的问题 :临时变量是右值 1.普通变量接收函数返回值: 2.右值引用变量接收函数返回值: 3.用const int& 和右值引用是一样的效果,只是const ...
最新文章
- [译] RxJS: 避免 takeUntil 造成的泄露风险
- Log probability 维基百科
- OSChina 周一乱弹 —— 把朋友圈的锦鲤全都抓走
- checkbox的相关知识点
- (19)C++项目练习二----------【音乐播放器】
- 异常处理—错误抛出机制
- sql java 创建数据库_java动态创建数据库(sql server)
- 教你玩转CSS响应式设计
- [转载]对 Linux 专家非常有用的 20 个命令
- 文档转成html在线预览,java poi Word文档转为HTML文件 实现在线预览功能
- spring框架实现实例化和依赖注入的方式分别是什么_Spring 面试问题
- 腾讯java笔试题_腾讯java笔试题
- 表达无序列表语义的html标签是,HTML语义标签的介绍和常用的语义标签
- XCELSIUS例子---柱形图部件的使用
- php global 要点
- 51Nod【1419】-最小公倍数挑战
- 电脑计算机怎么没有桌面显示器,电脑显示器没有全屏显示怎么解决
- 【SequoiaDB巨杉数据库】Oma-stopAllNodes
- Java小游戏之掷骰子
- 日语二级语法汇总(part13/16)
热门文章
- LeetCode——LCP 06.拿硬币
- matlab平稳随机过程的功率谱密度,平稳随机过程的功率谱密度
- python的基本数据结构_Python学习笔记——基本数据结构
- php 发送delete请求,PHP中使用CURL实现GET、POST、PUT、DELETE请求
- 计算机巧用剪纸做画册教案,3 巧折巧剪教案公开课一等奖
- 在c51语言的程序中 注释一般采用,【判断题】在 C51 语言的程序中,注释一般采用 /* */ 和 // 来实现。 (3.0分)...
- 河北微型计算机原理专接本,河北省专接本(微机原理与接口技术知识点总结)
- 单链表操作实现getelem_c语言实现--带头结点单链表操作
- python tk下拉列表_如何从Tkinter中的列表创建下拉菜单?
- python接口自动化关联参数_python接口自动化7-参数关联