C++

C++引用注意

2017-05-10  本文已影响0人  stefanJi
  1. 不能建立void类型引用
int a = 9;
void &b = a;  //错误
  1. 不能建立引用的数组
int a[] = {1,2,3,4};
int &b[] = a;  //错误
  1. 可以将变量的引用的地址赋给一个指证,此时指针指向的是原来的变量
  int a  = 1;
  int &b = a;
  int *p = &b; //等价于 int *p = &a;
  1. 可以建立指针变量的引用
  int a = 0;
  int *p = &a;
  int *&pt = p;  //pt指向a,*pt与*p均为取出变量a
  1. 可以用const对引用加以限定,不允许修改该引用的值。
    但可以改变引用所代表的变量的值。

这在将引用作为形参时,可以防止函数对引用进行修改,造成实参被修改

void fun(const int *i);

  int a = 0;
  const int &b = a;
  b = 1;  //报错
  a = 1;  //合法
  1. 可以用常量或表达式对引用进行初始化,
    可以用不同类型的变量对引用初始化(针对类型转换兼容的类型),
    但此时必须用const声明引用
  int a = 0;
  const int &b = a + 1;

  double d = 12;
  const int &i = d;
上一篇 下一篇

猜你喜欢

热点阅读