void swap(int& v1,int& v2);
与所有引用一样,引用形参直接关联到其所绑定的对象,而并非这些对象的副本。
定义引用时,必须与该引用绑定的对象初始化该引用。引用形参完全以相同的方式工作。每次调用函数,引用形参被创建并与实际的实参相关联。
返回引用。
当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。例如,下面的函数返回两个string类型形参中较短的那个字符串的引用。
const string& shorterString(const string& s1,const string& s2) { return s1.size()<s2.size()?s1:s2; }
形参和返回类型都是指向const string对象的引用,调用函数和返回结果时,都没有复制这些string对象。
千万不能返回局部对象的引用。
下面的程序是错误的!
const string& shorterString(const string&) { string ret=s; return ret;//错误!!!!!!!!!! }
通过引用传递数组
和其他类型一样,数组形参可声明为数组的引用。如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身。在这种情况下,数组大小成为形参和实参类型的一部分。编译器检查数组实参的大小与形参的大小是否匹配。
void pp(int (&arr)[10];
使用时:
int k[10]={1,2,3,4,5,6,7,8,9,0};
pp(k);
原文链接: https://www.cnblogs.com/kyleada/archive/2011/07/19/2110971.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/28966
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!