c++11新特性之引用篇
什么是左值引用,右值引用?
C++的引用:起别名,必须初始化,通过引用修改变量值
左值引用是对左值的引用,右值引用是对右值的引用。
int& a = b;
int&& c = 100;
// 这里的a和c都是左值
左值
可以取地址,具有名字,可以放等号左边,也可以放右边
int a = 10;
int b = a; // 这里a和b都是左值
例如,返回左值引用的函数调用,前置自增/自减,指针的解引用
int i = 0;
++i = 10; // ++i是左值
(i=9) =100; // (i=9)也是左值
(i+= 1) = 1000; // (i+=1)也是左值
int * p =&i;
*p= 18; // *p也是左值
👍功能:避免对象拷贝,比如函数传参,函数返回值
右值✨
特征:只能在等号右边,不能取地址,没有名字。右值又可以分为纯右值和将亡值。右值引用使用 && 符号表示。
👍右值的两种类型
1.纯右值:比如字面值,返回非引用类型的函数调用,后置自增/自减,算数表达式,逻辑表达式,比较表达式,,,
int i