左值与右值的简单理解

左值与右值的理解:当一个对象被用作右值的时候,用的是对象的值(内容),往往是占用的临时内存;当对象被用作左值的时候,用的是对象的身份(内存中的位置),往往是占用的固定内存。

	int a = 1;     // a是一个左值
	int b = 2;     // b是一个左值
	int c = a + b; // +运算符需要右值,a和b都转换成右值,并且返回一个右值

	// 赋值运算符需要一个(非常量)左值作为左侧运算对象, 其返回对象也是一个左值
	10 = a;  // 错误,字面值是右值
	a+b = 11;  // 错误,算术表达式是右值

	// 解引用运算符*、 取地址运算符&
	int *ptr = &a;  // &运算符将左值a转变成右值
	*ptr = 10;  // *解引用运算符的求值结果是左值
	
	// 下标运算符
	int array[] = {0, 1, 2, 3};
	array[1] = 10;  // []下标运算的求值结果是左值

	++a;  //  自加运算符 返回结果为左值
	cin >> a >> b;  // 输入、输出运算符 返回结果为左值

一个左值与右值详细介绍的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值