C++细节之一----3种参数传递方式的使用场景

 对于参数传递,有3种方式:a.传值 b.传引用 c.传指针

  如果是基本数据类型,那就传值,如果是传递大的对象,那当然是传引用。而对于引用来说,是赋了值后就不会改变的,应该加const, (const &a). 如果函数体要改变这个对象,那就传指针。这是一个结论,以下说明原因。

  将实参传递给形参,需要赋值操作,对于基本数据类型,当然是很快的,但是对于大的对象来说,赋值就是个性能的瓶颈了,因此,我们使用一个引用来传递,不需要赋值,只是引用到一个已经存在的对象上即可,这样明显效率高很多。

    另外,一个很重要的情况。传值和传常量引用实参是不会被形参改变的。而如果函数体要改变实参的值,必须是传指针。

   总结:
1 按值调用使用于不被函数更改的小对象;
2 按常量引用调用适用于不被函数改变的大对象;
3 按指针调用适用于所有可以被函数更改的对象(包含大对象和小对象)。

文章出处:http://www.diybl.com/course/3_program/c++/cppsl/2008712/132917.html

posted @ 2009-01-24 19:19  upzone  阅读(302)  评论(0编辑  收藏  举报