传值、传值和传引用 – C++快速入门12

传值、传值和传引用

 

让编程改变世界

Change the world by program


 

传值、传址和传引用

 

这一节课我们对函数进行进一步的剖析讲解,希望给大家带来一些新鲜的感觉。

在编写个人函数的时候,你将受到C++中一条基本原则的限制:在默认的情况下,参数只能以值传递的方式给函数。

这句话的理解是:被传递到函数的只是变量的值,永远不会是变量本身。

 

例题:example.cpp(源代码下载

 

请把地址给我

 

绕开“值传递”问题的第一种方法是向函数传递变量的地址取代它的值。我们说C语言强大,有很大一部分就是在于他的灵活,他的灵活,有大一部

分就是可以利用指针进行委婉地乱改。。。

正如我们所理解的,想要获取某个变量的地址只需要在它前边加上一个“取地址”操作符(&)就行了。

那我们可以试着这样:changeAge( &age, age+1 )

 

试试看:example.cpp(源代码下载

注意:如果传过去的是地址,在函数中必须要通过“*”对指针进行解引用,除非你有其他用途。

 

练习:swap.cpp(源代码下载
另外的一种不需要中介的互换方案:swap2.cpp(源代码下载

 

引用传递

 

传址在我们看来已经是很不错,不过C++语言的大神们在完善的过程中完善了地址这个概念。

设想:如果事先就知道某个函数的参数只能接受一个地址,能不能使用某种约定使得在调用该函数时不需要使用指针的语法呢?

于是乎,以引用传递方式传递输入方式的概念因此而产生了。

其实他跟我们这个传址的目的是一样的,都是把地址传递给函数,但语法不同更加容易使用了。

 

Hacker篇

 

反汇编对比三种传递方式分析讲解运行原理。。。(具体内容请看视频中详细讲解)

[buy] 获得所有教学视频、课件、源代码等资源打包 [/buy]
[Downlink href='http://urlxf.qq.com/?Ur6rm2q']视频下载[/Downlink]
[Downlink href='http://kuai.xunlei.com/d/LVUVJSGCFPMG']备胎下载[/Downlink]

原文链接: https://www.cnblogs.com/LoveFishC/archive/2011/12/11/3847143.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    传值、传值和传引用 - C++快速入门12

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/38289

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午2:56
下一篇 2023年2月8日 下午2:56

相关推荐