【发布时间】:2013-01-19 19:06:27
【问题描述】:
我完全是 C++ 世界(以及 C)的新手。并且不知道它的所有细节。但有一件事真的让我很困扰。
它是这样的结构:
while (a=b) {...} 。据我了解,这种魔法之所以有效,是因为 C 和 C++ 中的赋值运算符会返回一些东西。
所以问题是:它返回什么?这是记录在案的事情吗?它在 C 和 C++ 中的工作方式相同吗?非常感谢有关赋值运算符及其在 C 和 C++ 中的实现(如果有区别)的低级细节!
我希望这个问题不要被关闭,因为从低层次的角度我找不到关于这个主题的全面解释和好的材料。
【问题讨论】:
-
@chris 谢谢,但我想要更广泛的解释
-
返回分配给
a的内容。除非运算符被重载以返回其他内容。 -
@modifiablelvalue 不知道是不是误会你了,不过签名大多都是
T &operator =(T &left, const T &right),返回left。否则你不能使用a = b = c。 -
C++ 中的@Kay
returning与C 中的evaluating不同。
标签: c++ c assignment-operator