前言
对于左值和右值有一个不太严谨的定义——在赋值表达式 =
左侧是的左值,而在 =
右侧的是右值。通过不断学习和尝试,最近我发现一个新的说法更加贴切,那就是“左值是容器,右值是东西”。对于这个定义我们可以类比一下水杯和水,通过水杯可以操作水杯中的水,操作过程中的中间结果如果想要进一步操作,可以将其放入其他的水杯,如果没有水杯就无法找到曾经操作过的水了,也就无法继续操作了。
1 | int a = 2; |
在这个例子中,变量 a
,b
, c
都是水杯,而 2
、6
、a + b
都是被用来操作的水,只有把这些“水”放到“水杯”中才能被找到,才可以进行下一步操作。