我正在阅读有关值类型和值和对象的内容,好像它们意味着不同的东西,所以我假设它们确实如此。然后我尝试做一些研究,但没有运气。我知道一个值是一个不能被进一步评估的表达式,但一个对象不只是一个值的“容器”吗?另外,根据我对表达式的术语理解,说一个对象包含一个表达式(因为值是一个表达式)会不会很奇怪?
我不会开始做太多猜测,因为这可能会使一切变得复杂,并且可能会将焦点从值和对象之间的差异转移开。
编辑:对于将其标记为“太宽泛”的人来说,以下问题是否也同样广泛,如果不是更广泛的话,什么是 rvalues、lvalues、xvalues、glvalues 和 prvalues?此外,SO 上还有许多其他“差异”问题,其中许多与我链接的问题一样广泛。那么为什么这个特定问题无效?
甲值是比一个更抽象的概念对象。
就像评论中提到的那样,值和对象之间的差异/关系类似于水和杯子之间的差异/关系。
你需要一个容器,在这种情况下是一个杯子,用来盛水,否则会漏水。同样,您需要一个对象来保存值,以便它们不会很快丢失或被覆盖。
一个对象总是有其专用的存储区域(在内存中),而一个值的生命周期可能只有一条指令 ( movl %eax, $1)。