Detalhes de baixo nível da implementação do operador de atribuição C / C ++. O que isso retorna?

Eu sou um novato total para um mundo C ++ (e C também). E não conheça todos os detalhes. Mas uma coisa realmente me incomoda. São construções como:while (a=b) {...} Como eu entendo esta mágica funciona porque o operador de atribuição em C e C + + retorna alguma coisa. Então as perguntas: o que isso retorna? Isso é uma coisa documentada? Funciona da mesma maneira em C e C ++. Detalhes de baixo nível sobre o operador de atribuição e sua implementação em C e C ++ (se houver uma diferença) serão muito apreciados!

Espero que esta questão não seja encerrada, porque não consigo encontrar uma explicação abrangente e um bom material sobre este tema, do ponto de vista de baixo nível, ainda mais.

questionAnswers(4)

yourAnswerToTheQuestion