jan*_*anm 11
"左值"是可以作为赋值目标的值."l"代表"左",如等号的左侧.右值是右手值并产生一个值,不能直接分配.如果你得到"左值",你有一个表达式,当需要左值时产生一个右值.
例如,常量是右值,但不是左值.所以:
1 = 2; // Not well formed, assigning to an rvalue
int i; (i + 1) = 2; // Not well formed, assigning to an rvalue.
Run Code Online (Sandbox Code Playgroud)
不起作用,但是:
int i;
i = 2;
Run Code Online (Sandbox Code Playgroud)
请问.请注意,您可以从函数返回左值; 例如,您可以返回对提供operator =()的对象的引用.
正如Pavel Minaev在评论中指出的那样,这并不是语言中左值和右值的正式定义,而是试图向某人描述一个关于使用需要左值的右值的错误.C++是一种具有许多细节的语言; 如果你想要正式,你应该咨询正式的参考.
| 归档时间: |
|
| 查看次数: |
57519 次 |
| 最近记录: |