So can someone help me grasp all the (or most of the relevant) situations of an assignment inside something like an if(...) or while(...), etc?
What I mean is like:<
The return type of the assignment is the left hand value, it's what allows statements like a = b = c to compile. In your example:
a = b = c
while(a = &c) { }
Returns true when "a" is true, after it has been assigned the value of &c.