C++语言程序设计
上QQ阅读APP看书,第一时间看更新

2.5 引用

在变量中,不同于C语言的是引用型变量。引用就是给一个变量起个别名,两个名字对应同一个地址,这使得变量与它的引用总是具有相同的值。简单理解引用,它就好比一个人有大名与小名之分,但都指同一个人。引用型变量的定义格式如下:

     数据类型名 &引用变量名=被引用变量名;

在定义引用时,需要注意以下几点:

  • 在以上定义格式中,“&”不是取地址符,而是引用运算符,只在定义一个引用的时候使用,引用被定义以后就像普通变量一样,使用时无须再用“&”符号。
  • 引用变量名为一个合法的用户自定义标识符。
  • 在定义一个引用时,如果不是作为函数的参数或返回值,就必须对它进行初始化,以明确该引用是哪一个变量的别名,以后在程序中不可以改变这种别名关系。
  • 因为引用变量是某个变量的别名,所以系统并不为引用变量另外分配内存空间,它与所代表的变量名占用同一段内存空间。
  • 不是任何类型的数据都有引用,如不能建立void类型引用。

接下来演示引用型变量的定义与使用,如例2-11所示。

例2-11

运行结果如图2.22所示。

图2.22 例2-11运行结果

在例2-11中,第6行表示b是a的引用变量,a是b的被引用变量,a与b共用同一块内存,因此b的值也是2。第8行通过引用变量b修改a对应的内存值为3,从第9行输出结果可以看出,a和b的值都变为3。第10行中通过取地址运算符&来输出a和b的地址,a和b代表同一块内存地址。从本例中可以看出,无论程序中改变了变量值还是其引用变量值,变量与它的引用总是具有相同的值。但在一个程序中,通过引用变量引用一个普通变量,显然是没必要的,这样会降低程序的可读性。实际上,引用主要用作函数参数以及作为函数的返回值,它在程序中发挥着灵活的作用。