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

参数传递(引用,指针,值传递)C++11

时间:2015-03-13 16:34:54      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:引用   值传递   引用传递   

C++中,函数的参数传递方式有值传递、地址传递。传地址有指针和引用方式。
在函数参数中,传地址的理由有:
1.使被调函数可以修改主调函数中的数据对象;
2.传地址可以减少数据拷贝,提高程序执行速度。

那么,何时使用值传递,何时使用地址传递(指针和引用)?
下面是一些写代码时会遇到的一些情况

被调函数使用参数对象时,不会修改数据对象

  1. 如果要传入函数的数据对象较小,比如是内建数据类型或小规模的结构体,那么使用值传递;
  2. 如果数据对象是数组,那么使用指针(这也是你唯一的选择)。指针添加const修饰;
  3. 如果数据对象是大规模的结构体,使用const指针或const引用;
  4. 如果数据对象是class对象,使用const引用。这也是C++中传递class对象的标准做法;

被调函数使用参数对象时,会修改数据对象

  1. 数据对象是内建数据类型,使用指针(func(&var)表明函数中要修改var,比使用引用的调用形式func(var)可读性好);
  2. 数据对象是数组,指针是唯一的选择;
  3. 数据对象是结构体,使用指针或引用;
  4. 数据对象是class对象,使用引用;

当然,以上只是一般情况。特殊情况另外讨论。

参数传递(引用,指针,值传递)C++11

标签:引用   值传递   引用传递   

原文地址:http://blog.csdn.net/yelede2009/article/details/44242127

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