C++PrimerPlus(第6版)中文版:Chapter18.1.9右值引用

等号左边的值就是左值,能够取地址的,有名字的就是左值。

等号右边的值就是右值,不能取地址的,无名字的就是右值。

右值包括字面常量(C风格字符串除外,它标识的是地址)、诸如x+y的表达式、以及返回值的函数(该函数返回的不能是引用)。

引入右值引用最大的目的是为了实现移动语义。下一个博客说移动语义。

rvref.cpp源代码如下:

// rvref.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
inline double f(double tf) { return 5.0 * (tf - 32) / 9.0; };

int main()
{
   // std::cout << "Hello World!\n";
	using namespace std;
	double tc = 21.5;
	double && rd1 = 7.07;
	double&& rd2 = 1.8 * tc + 32;
	double&& rd3 = f(rd2);

	cout << "tc value and address :" << tc <<", "<< & tc << endl;
	cout << "rd1 value and address :" << rd1 << ", " << &rd1 << endl;
	cout << "rd2 value and address :" << rd2 << ", " << &rd2 << endl;
	cout << "rd3 value and address :" << rd3 << ", " << &rd3 << endl;
}

运行结果:

tc value and address :21.5, 0136FC50
rd1 value and address :7.07, 0136FC34
rd2 value and address :70.7, 0136FC18
rd3 value and address :21.5, 0136FBFC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值