函数返回值是一个引用的情况:

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++函数返回值是一个引用相关推荐

  1. 14. 函数返回值为引用?

    函数返回值可以是引用吗? 当然可以,只是在函数返回引用的时候需要注意几点.以下给出讨论! 函数在返回值的时候,会产生一个临时变量作为函数返回值的副本:而函数在返回引用的时候,不会产生副本!那么既然是引 ...

  2. 函数返回值 返回引用

    先看看该链接讨论的问题作为热身.http://topic.csdn.net/u/20070616/13/2a6a1739-1a69-4829-a90f-fdb19a61e095.html 函数返回值和 ...

  3. C++函数返回值的规则

    C++函数返回值的规则 [规则6-2-1]不要省略返回值的类型. C语言中,凡不加类型说明的函数,一律自动按整型处理.这样做不会有什么好处,却容易被误解为void类型. C++语言有很严格的类型安全检 ...

  4. C++ 笔记(15)— 引用(声明引用、引用作为参数、引用作为函数返回值、const 用于引用)

    引用是变量的别名.也就是说,它是某个已存在变量的另一个名字.一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量. 1. 创建引用 要声明引用,可使用引用运算符 & ,如下面的 ...

  5. 2020-09-22C++学习笔记之引用1(1.引用(普通引用)2.引用做函数参数 3.引用的意义 4.引用本质5.引用结论 6.函数返回值是引用(引用当左值)7测试代码)

    2020-09-22C++学习笔记之引用1(1.引用(普通引用)2.引用做函数参数 3.引用的意义 4.引用本质5.引用结论 6.函数返回值是引用(引用当左值)7测试代码) 1.引用(普通引用) 变量 ...

  6. c++函数返回值与引用

    对于函数的返回值,看似简单,但并非如此,比如: int func(int a);该函数会返回一个int型,如果进行一个调用int result=func(3);会发生什么情况? 首先,func将返回值 ...

  7. python函数的返回值是返回引用吗_python-函数(上):函数返回值、函数调用、前向引用...

    编程方法: 1.面向对象:类--class 2.面向过程:过程--def 3.函数式编程:函数--def #python中函数#函数的定义#打印一个佛祖镇楼 -> 一个功能点的解释 defpri ...

  8. “引用作为函数参数”与 “引用作为函数返回值”

    一.引用作为函数参数 作为函数参数时引用有两种原因: 1.在函数内部会对此参数进行修改:2.提高函数调用和运行效率. 关于第一点,都知道C++里提到函数就会提到形参和实参.如果函数的参数实质就是形参, ...

  9. C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析

    右值引用保存临时变量(函数返回值)的问题 :临时变量是右值 1.普通变量接收函数返回值: 2.右值引用变量接收函数返回值: 3.用const int& 和右值引用是一样的效果,只是const ...

最新文章

  1. [译] RxJS: 避免 takeUntil 造成的泄露风险
  2. Log probability 维基百科
  3. OSChina 周一乱弹 —— 把朋友圈的锦鲤全都抓走
  4. checkbox的相关知识点
  5. (19)C++项目练习二----------【音乐播放器】
  6. 异常处理—错误抛出机制
  7. sql java 创建数据库_java动态创建数据库(sql server)
  8. 教你玩转CSS响应式设计
  9. [转载]对 Linux 专家非常有用的 20 个命令
  10. 文档转成html在线预览,java poi Word文档转为HTML文件 实现在线预览功能
  11. spring框架实现实例化和依赖注入的方式分别是什么_Spring 面试问题
  12. 腾讯java笔试题_腾讯java笔试题
  13. 表达无序列表语义的html标签是,HTML语义标签的介绍和常用的语义标签
  14. XCELSIUS例子---柱形图部件的使用
  15. php global 要点
  16. 51Nod【1419】-最小公倍数挑战
  17. 电脑计算机怎么没有桌面显示器,电脑显示器没有全屏显示怎么解决
  18. 【SequoiaDB巨杉数据库】Oma-stopAllNodes
  19. Java小游戏之掷骰子
  20. 日语二级语法汇总(part13/16)

热门文章

  1. LeetCode——LCP 06.拿硬币
  2. matlab平稳随机过程的功率谱密度,平稳随机过程的功率谱密度
  3. python的基本数据结构_Python学习笔记——基本数据结构
  4. php 发送delete请求,PHP中使用CURL实现GET、POST、PUT、DELETE请求
  5. 计算机巧用剪纸做画册教案,3 巧折巧剪教案公开课一等奖
  6. 在c51语言的程序中 注释一般采用,【判断题】在 C51 语言的程序中,注释一般采用 /* */ 和 // 来实现。 (3.0分)...
  7. 河北微型计算机原理专接本,河北省专接本(微机原理与接口技术知识点总结)
  8. 单链表操作实现getelem_c语言实现--带头结点单链表操作
  9. python tk下拉列表_如何从Tkinter中的列表创建下拉菜单?
  10. python接口自动化关联参数_python接口自动化7-参数关联