转自:http://zhidao.baidu.com/link?url=Le20bj4DncREnLdpUEFAK5l-9eBbBByzTd0CWpYihwhBXUyluW-87p_6ukXCrEAzyzg7UrK4bPcALmHtxVGW7_
参数是简单类型(如整数)而且程序中不改变参数的值就不要用了, 复杂类型要用,避免拷贝构造函数被调用。如果你想改实际参数的值,也用引用。 -------------------------------------------------- 不是说了吗,根据你的数据类型和是否要在函数中改变此参数的值。像求加法这样的简单函数,就不用引用: int Add(int l, int r) { return l + r; } 如果你要改参数的值,就用。比如一个函数返回几个结果: void f(int i, int &j, int &k, int &m) { j=i++; j=i*2; m=j-5; } 如果你有复杂的类型,也要用引用,因为不用引用就会调用拷贝构造函数把你的复杂对象拷贝一次,比较慢。不过要用常引用: void f(const MyClass &c) { ................... }