左值和右值
2017-02-19 22:03
113 查看
引用
引用说明为对象建立引用名,即别名引用在定义初始化时与对象名绑定,程序中不能对引用重定义
一个对象的别名,从使用方式和效果上,与使用对象名一致
区分左值和右值
能否用“取地址&”运算符获得对象的内存地址对于临时对象,它可以存储于寄存器中,没办法用“取地址&”运算符
对于常量,它可能被编码到机器指令的“立即数”中,没办法用“取地址&”运算符
std::string strHello = "Hello World!" Foo(strHello.substr(0, 5)); //右值引用, substr()返回作为Foo参数是临时变量,执行结束后就不再存在. Bar(strHello); //左值引用, strHello在执行结束后依然存在
相关文章推荐
- 左值和右值
- 左值引用"&"、右值引用"&&"以及它们之间的转换
- 左值、右值、左值引用、右值引用
- 左值和右值
- C++左值右值和移动语义
- “非常量引用的初始值必须为左值”问题
- 深入理解(实例) -- c++ 右值引用 左值引用
- C语言中的左值和右值
- 左值与右值
- 左值与右值
- 左值和右值的概念
- pval是int*类型而不是int数组类型的左值----理解
- 后自增(减)的结果不是左值
- 非左值数组可以具有下标
- 左值 右值
- 内置变量,复合变量与内存引用的关系(左值)及指针的几个解引用方法
- 左值右值
- 为什么(i++)不能做左值,而(++i)可以
- C++中的左值与右值
- 左值和右值。(这个是翻译错误,l-value的l是location的意思,r-value的r是readable的意思,非left和right)