申明和使用"引用"要注意哪些问题

时间:2018-12-31 12:00:00 资料大全 我要投稿

申明和使用"引用"要注意哪些问题

  答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同,

申明和使用"引用"要注意哪些问题

。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。

  拓展阅读:

  引用说明

  (1)&在此不是求地址运算,而是起标识作用。

  (2)类型标识符是指目标变量的类型。

  (3)声明引用时,必须同时对其进行初始化。

  (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

  int a=2,int &ra=a;

  a为目标原名称,ra为目标引用名。给ra赋值:ra=1; 等价于 a=1;

  (5)对引用求地址,就是对目标变量求地址。&ra与&a相等。即我们常说引用名是目标变量名的'一个别名。别名一词好像是说引用不占据任何内存空间,

资料共享平台

申明和使用"引用"要注意哪些问题》(http://meiwen.anslib.com)。但是编译器在一般将其实现为const指针,即指向位置不可变的指针。即引用实际上与一般指针同样占用内存。

  (6)不能建立引用的数组。因为数组是一个由若干个元素所组成的集合,所以无法建立一个由引用组成的集合。但是可以建立数组的引用.

  例如: int& ref [3]= {2,3,5};//声明ref引用的数组错误

  但是可以这样写:

  const int (&ref)[3] ={2,3,5}; //gcc编译的时候加上选项 -std=c++0x

  ref[0] = 35; //错误

  为什么要加上const ,因为{2,3,5}此时是个字面值数组,是保存在代码段里,只读的属性,如果不加,编译错误,而且后面对ref[0]的赋值也不会成功.

  需要特别强调的是引用并不产生对象的副本,仅仅是对象的同义词。因此,当下面的语句执行后:

  pt1.offset(12,12);

  pt1和pt2都具有(12,12)的值。

  引用必须在定义时马上被初始化,因为它必须是某个东西的同义词。你不能先定义一个引用后才

  初始化它。例如下面语句是非法的:

  Point &pt3;

  pt3=pt1;

  那么既然引用只是某个东西的同义词,它有什么用途呢?

  下面讨论引用的两个主要用途:作为函数参数以及从函数中返回左值。

【申明和使用"引用"要注意哪些问题】相关文章:

1.交谈礼仪要注意哪些问题

2.面试时要注意哪些问题

3.引用笔试具体问题

4.办理护照时都需要注意哪些问题?

5.考研报名需要注意的问题有哪些?

6.关于求职面试礼仪需要注意哪些问题

7.毕业生签约需要注意哪些问题

8.大学生求职签约需要注意哪些问题