CPlusPlus之引用符号&的用法

符号&在C语言中代表取址符,在C++中则代表引用,是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。

引用简介

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。

引用的声明方法:类型标识符 &引用名=目标变量名;

1
int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名

引用作为参数

引用的一个重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,因为这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(C++中)又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择),就是引用。

1
2
void swap(int &p1, int &p2) //此处函数的形参p1, p2都是引用
{ int p; p=p1; p1=p2; p2=p; }

引用作为返回值

要以引用返回函数值,则函数定义时要按以下格式:

类型标识符 &函数名(形参列表及类型说明)
{函数体}

1
2
3
4
5
float &fn2(float r) //定义函数fn2,它以引用方式返回函数值
{
 temp=(float)(r*r*3.14);
 return temp;
}

引用作为返回值,必须遵守以下规则:

  • 不能返回局部变量的引用。
  • 不能返回函数内部new分配的内存的引用。
  • 可以返回类成员的引用,但最好是const。

参考链接

  1. c++&的用法,by Knigh_art.
  2. 我所理解的C++类设计中private成员变量和返回const引用类型,by Huming.
  3. C++返回引用的需求,by 唐淼.