【发布时间】:2019-09-12 06:23:39
【问题描述】:
我正在阅读关于左值和右值的article。我不太明白这段代码:
int x;
int& getRef ()
{
return x;
}
getRef() = 4;
首先,return x 如何为您提供x 的引用?不应该是return addressof(x)之类的吗?
其次,getRef() = 4 到底是做什么的?这应该是一个任务吗?我在这里不知所措。
【问题讨论】:
-
what exactly does getRef() = 4 do?。由于getRef()返回对x的引用,getRef() = 4会将4分配给x。 -
类似“addressof some_thing”的东西是地址运算符
&,它给你一个指针。引用不需要那个。至于getRef() = 4;的工作原理,请思考或类似int& temp = getRef(); temp = 4;(它不完全是那样,但希望能帮助您了解正在发生的事情)。