An lvalue refers to a memory location, and allows the address of the memory
location to be accessed using the
operator. An lvalue can be
on either the left or right side of an assignment.
An rvalue is defined as everything else that is not an lvalue. An rvalue can only be on the right side of an assignment.