将**左值引用**用于**一级指针**时,有以下几种用法: ```c++ //方式一:引用一级指针,常规用法 int a = 5; int * pa = &a; int * &rpa = pa; //方式二:引用指向常量的一级指针,以下几种为等效表示 int a = 5; const int * pa = &a; const int * &rpac = pa; //方式一 int const * &rpac = pa; //方式二 //方式三:引用一级指针的常引用,…
将右值引用用于一级指针,在初始化时等号右边必须为右值,有以下几种用法: //方式一:引用一级指针,常规用法 int a = 5; int * &&rrpa = &a; //右值:例子一 int * getPx() { return new int; } int * &&rrpa = getPx(); //右值:例子二 int * pa = &a; int * &&rrpa = std::move(pa);//右值:例子三 //方式二:引用指向…
左值引用VS右值引用 左值引用对于一般的C++程序员再熟悉不过,但对于右值引用(C++0X新特性),就稍微有点不知所云 左值VS右值 在定义变量的时候,经常会用到左值和右值,比如:int a = 1;int b = a + 1; 上面这段代码,a先作为左值,在作为右值.在作为右值的时候,是相当于(原理上等同,但不一定对) int tmp(a + 1);int b(tmp); 中间会先建立一个临时遍历,然后在把临时遍历赋值给b.对于数,只能作为左值,而变量名,即可以作为左值又可以作为右值.(作为左…
左值引用是已定义的变量的别名,其主要用途是用作函数的形参,通过将左值引用变量用作参数,函数将使用原始数据,而不是副本.引用变量必须在声明时同时初始化,可将 const 关键字用于左值引用,如下所示: //声明并初始化常规左值引用变量 int x = 55; int & rx = x; //将const关键字用于左值引用变量,以下几种为等效表示 int x = 55; const int & crx = x; int const & crx = x; 在 Microsoft Visu…