引用。

定义:引用就是已经定义的变量的别名。

语法:Type& name = var;

eg: int a = 0;
   int& b = a;  // b 就是 a 的别名
   b = 5;       // 操作 b 就是操作 a
引用在定义的时候必须用同一种类型进行初始化,a,b类型相同。

含义:在C++中可以对同一段内存起不同的名字。

1. 引用代替指针

void swap( int& a , int& b )  //同一变量的地址
{
  int temp = a;
  a = b;
  b = temp;  
}

void swap(int *a,int* b)
{
  int temp = *a;
  *a = *b;
  *b = temp;
}

int main(void)
{
  int a=1,b=2;
  swap(a,b);
  return 0;
}

2. const引用

  语法:const Type& name = var;

  含义:const引用让变量拥有只读属性。

int a = 4;
const int& b = a;
b = 5;                 // error 

  注:引用中不可以用常量来初始化。const引用可以。

      int& a = 1;   //error
const int& a = 1;   //此时编译器会创建只读常量,内存创建四个字节地址,用b作为其别名。
int *p = (int *)&a;
*p = 5 ;       // ok a==5

3.引用在C++内部的实现是指针常量

  指针常量规定了指针指向的地址不可变。使用时引用 a 相当是 *a。

  Type& name;   <==>  Type* const  name;

void fun(int& a)    { a = 5;}  //等价
void fun(int* const a)    {*a = 5;}

猜你喜欢

转载自www.cnblogs.com/zsy12138/p/10679117.html