码迷,mamicode.com
首页 > 编程语言 > 详细

C++三种传参方式

时间:2018-03-22 01:38:16      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:数据   传参   指针传递   提升   更新   大数据   ons   赋值   指针   

C/C++中传参方式可分三种:值传递(传副本)、指针传递(传地址)、引用传递(传别名)。

 (1)值传递:其实是一种赋值操作,实参传递给形参时会产生额外的副本,形参只是实参的拷贝,所以函数内对形参的操作不会更新到源实参。在函数结束时,形参作为局部变量会被释放,对实参不会产生任何影响。若为类的对象会调用拷贝构造,这种深拷贝操作会影响到传参效率。

 (2) 指针传递:因为传递的是实参的地址,指针指向的内存中同一个对象,所以函数内部对形参得操作会“同步更新”到实参。

 (3)引用传递(C++特有):传递的是实参的别名,传参时形参被绑定到实参对象上,因此函数内部对形参的操作也都会“同步更新”到源实参。

   注:关于指针传递和引用传递,形参改变对实参的改变是一种副作用,我们利用这种副作用可以方便修改传递的实参,另外,这种方式避免了值传递中的拷贝,对于大数据的实参可以有效提升效率。因此,对于想提升传参效率又不想影响实参的情况,可以使用const:

C++三种传参方式

标签:数据   传参   指针传递   提升   更新   大数据   ons   赋值   指针   

原文地址:https://www.cnblogs.com/cansun/p/8620773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!