左値右値
左值为: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?