左值引用和右值引用

当我们把一个对象用作右值时,用的是对象的值(内容);而当我们把一个对象用作左值时,用的是对象的内存地址(身份)。

一个简单的判别方法就是取变量的地址,如果能取地址&就是左值,否则是右值。

**Tips:**   临时变量是右值。取地址符作用于一个左值对象,返回一个指向该对象的指针,这个指针是一个右值。解引用生成左值。
int *p ;
decltype(p);--->int *
decltype(*p);--->解引用运算符生成左值,所以结果是int &
decltype(&p);---->取地址运算符生成右值,所以结果是int **,也就是一个指向整型指针的指针
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容