左値右値

左值为:location-value 右值为:read-value

从功能上 左值表达地址,右值表达结果 两者以赋值符号区分。

合法的左值,最主要的是location功能,即需要可预测的存储地址。

反过来就是,能够出现在赋值符号左侧的为左值,能够出现在赋值符号右侧的为右值

举个例子

a = b + 25; //合法  
b + 25 = a; //不合法,因为解析规则无法明确 b + 25 这个中间値的地址未知
a[b+10] = 0; //合法,a的地址确定,a[n]的地址也是确定的

Last updated

Was this helpful?