函数传参指针和引用的差别

来源:互联网 发布:防盗芯片编程器 编辑:程序博客网 时间:2024/06/05 07:10

这里写图片描述

常规情况

函数参数传递是所谓的“值传递”。啥意思,就是传的只是值,而不是变量自己以身相许。上面的例子来说,main中的ab传递给函数的ab发生了什么呢,是main中的ab把值传递给了函数的ab,这是四个变量!!!main的ab和swap的ab不是一码事!!!当swap通过传值得到a5b10后,在swap中会互换,但是main的中的ab怎么会变呢?他们传值完毕后就没有关系了!
这里写图片描述

引用

什么叫引用?引用时变量的别名,也就是引用不是一个独立的变量,只能依附于其他变量。你的例子中swap中没有ab两个变量,只有main中ab的两个别名,只是别名碰巧也叫ab。在swap中对swap的ab的任何操作,本质上操作的都是main的ab!想想一下一个人在mian中叫张三,脸上有胡子。他的小名叫狗剩。在swap中我们说,吧狗剩的胡子刮了。然后回到main中,张三同学的额胡子有没有?当然没有了
这里写图片描述

指针

指针存放对象的地址。在你的例子中,swap中的ab和main中的ab的关系式,swap是mian中ab的地址。想想一下,mian中的ab地址为AB,在swap中我们说吧A地址的家伙变为100,B地址的变为1000.请问mian中变了没有?当然会变!!

1 0