函数中变量生命周期

函数中定义的直接变量(非new出来的变量),其生命周期只存在于函数中,如果强行使用指针把此变量传出函数外,此时变量其实已经被销毁了,没有任何意义。

引用

引用就是别名,引用的底层实现还是指针, 函数返回若不返回一个变量的引用,则一定会生成一个临时变量。

int a=10;
int &q=a; //等价于 int *const q=&a;

引用的规则

  • &在此不是求地址运算,而是起标识作用。
  • 类型标识符是指目标变量的类型。
  • 声明引用时,必须同时对其进行初始化。
  • 引用变量名有两声明完毕后,相当于目标个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。ra=1; 等价于 a=1;
  • 声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用不能建立数组的引用。因为数组是一个由若干个元素所成的集合,所以无法建立一个数组的别名。
  • 不能建立引用的引用,不能建立指向引用的指针。因为引用不是一种数据类型!!所以没有引用的引用,没有引用的指针。