好的,我一直在学习有关 lvalue 和 rvalue 的知识 - 请问精通 C/C++ 的人能告诉我我的想法是否正确吗?
考虑下面的代码:
这里有两个左值
由于它们都是内存中的物理地址,所以
如果有任何澄清,那就太棒了!
考虑下面的代码:
int i = 3;
int j = i;
这里有两个左值
i
和 j
,当将 i
赋值给 j
时,i
变成了一个隐式的右值,因为 i
的一个副本被存储在 j
中。但是如果代码看起来像这样:int i = 3;
int j = &i;
由于它们都是内存中的物理地址,所以
j
和&i
都是左值吗? 我的理解是右值是临时数据,而左值具有可引用的物理/引用内存地址。如果有任何澄清,那就太棒了!