对函数返回形式及传参方式的简单理解(实例)
来源:互联网 发布:经济管理类书籍 知乎 编辑:程序博客网 时间:2024/06/07 13:13
函数可以返回值、引用和常量引用,其中返回常量引用与返回引用区别不大(惟一的区别就是前者返回结果是一个不能变化的对象引用)。
我们可以通过以下几个例子来理解返回值和返回引用的区别。
例1
输出结果 b: 1
函数返回一个值,该值会由形式参数复制到调用函数的环境中,因此改变a的值并不会影响b的值。
例2
输出结果 b: 2
函数返回引用,返回的结果是指向形式参数的引用,因此改变a的值会同时反映的b上。
上面两个例子改变一下传参的方式,会有不同的输出结果
例3
输出结果 b: 273185728
如前一篇的函数传参一文中所述,在调用Func函数前会调用A的构造函数将实际参数拷贝到形式参数,调用函数结束时,会调用A的析构函数释放形式参数。由于函数返回形式参数的引用,而形式参数又被释放掉了,因此这里的输出结果不是1。
例4
输出结果 b: 1
这里由于函数Func是返回值而不是引用,函数在返回时会把返回结果复制到调用函数的环境中,因此尽管形式参数会被释放掉,但对返回结果并没有影响,所以输出结果还是1。
初学C++,可能理解的不够到位,欢迎各位指正。有更好的例子也欢迎大家提出来讨论讨论,呵呵。
- 对函数返回形式及传参方式的简单理解(实例)
- 对gdb调试,函数栈的形式,以及栈对齐方式的理解和实例
- 对connect函数的简单理解
- 对super函数的简单理解
- 对函数及递归的通俗理解
- c 语言函数传参的三种方式及二级指针的理解
- 通过简单的实例对指针的理解
- oracle利用游标实现返回一个表形式数据集合的函数及存储过程
- 对函数参数传递的两种方式的理解
- 对STM32的NVIC_PriorityGroupConfig使用及优先级分组方式理解
- asp.net中函数返回参数和调用的实例!(超简单示例)
- 简单函数的返回
- 表单中打开页面的几种方式及传参形式
- 深入理解主函数main()的输入参数及返回值问题
- js回调函数的理解及简单实例
- 最简单的 NSIS 函数返回值的返回与接收实例
- 给定两个链表表示的整数,编写函数对这两个整数求和,并用链表形式返回结果。
- 对android中动画的简单理解及对NotBoringActionBar效果的简单分析
- 《诗盗·命运》
- 求解释:内存中赋值操作的过程
- ipc命令祥解
- C# 操作DOS命令
- sgf
- 对函数返回形式及传参方式的简单理解(实例)
- 关于林锐老师的《如何管理软件企业》第二版
- 数据库设计中的14个技巧
- C/C++野指针
- 感觉不错!
- [小说连载]张小庆,在路上(1)- 找工作
- 知识用时方恨少啊
- firefox源码分析 (还是不建议用余学习C++)
- 自己写的简单大方的树形导航菜单