符号&在C语言中代表取址符,在C++中则代表引用,是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。
引用简介
引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
引用的声明方法:类型标识符 &引用名=目标变量名;
1 | int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 |
引用作为参数
引用的一个重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,因为这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(C++中)又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择),就是引用。
1 | void swap(int &p1, int &p2) //此处函数的形参p1, p2都是引用 |
引用作为返回值
要以引用返回函数值,则函数定义时要按以下格式:
类型标识符 &函数名(形参列表及类型说明)
{函数体}
1 | float &fn2(float r) //定义函数fn2,它以引用方式返回函数值 |
引用作为返回值,必须遵守以下规则:
- 不能返回局部变量的引用。
- 不能返回函数内部new分配的内存的引用。
- 可以返回类成员的引用,但最好是const。
参考链接
- c++&的用法,by Knigh_art.
- 我所理解的C++类设计中private成员变量和返回const引用类型,by Huming.
- C++返回引用的需求,by 唐淼.