title: Low level details of C/C++ assignment operator implementation. What does it return?
body: <p>I m a total newbie to a C++ world (and C too). And don't know all its details. But one thing really bothers me.
  It is constructions like :
   <code>while (a=b) {...}</code> .As I understand this magic works because assignment operator in C and C++ returns something.
  So the questions: what does it return? Is this a documented thing?Does it work the same in C and C++. Low level details about assignment operator  and its implementation in both C and C++ (if there is a difference) will be very appreciated!
  <p>I hope that this question won't be closed, because I can't find a comprehensive explanation and good material on this theme from the low level point of view all the more so.</p>