Quote:
Originally Posted by daltore
lvalues (left values) are what you see on the left side of an equal sign, you're taking an actual quantity and telling the computer where to put it. The lvalue is just the address of the variable. rvalues (right values), are the actual quantity value that you're reading or putting into another variable. When working with pointers, you have to specify, because it changes whether you are reading or writing to the variable which it points to. You specify an address (lvalue) by an ampersand (&), and you specify the value (rvalue) as an asterisk (*).
|
An l-value is not an address, but something that has an address. For example, assume x was declared as "int x". x is an l-value, however, &x is not (that would be an r-value as all numbers are). Conversely, if x was declared as "int * x", both x and *x are l-values. For me it's easiest to think of l-values as anything that can be placed to the left of an '=' and r-values as anything that cannot.