左值和右值我的理解

参考:https://blog.youkuaiyun.com/xuwqiang1994/article/details/79924310

左值和右值有下述3个区别,一脉相承。规定不是死的,还是要灵活理解。

左值:占据内存空间,可以获得地址。例如变量
右值:CPU的缓冲区、寄存器上的,无法获得地址。例如临时变量或中间计算结果
Intvec v1 = Intvec(10)
其中v1是变量,是左值;Intvec(10)是临时变量是右值
string s;
s + “tail”
其中s是变量,是左值;s + “tail”是中间计算结果是右值。

左值:可以作为右值
右值:不能作为左值。

左值:可以被修改。因为有地址。
右值:不可以被修改。因为没有地址。
又因为有const的存在,C标准增加“可以修改的左值”。

C语言的规定:
左值:= 左边的值
右值:= 右边的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值