// Not executable. // Examples of lvalues and rvalues // some variables and declarations int x, z; int* y = 0x1; int* get_pointer(); int get_integer(); // lvalue examples (see left side of =) // lvalue is evaluated to an address x = 1; *y = 1; *(get_pointer()) = 1; y[4] = 1; *(y+4) = 1 // rvalue examples (see right side =) // rvalue is evaluated to a value x = 1; x = z; x = *y; x = get_integer(); y = 0x2; int g = *(y+4); // invalid lvalues *4 = 1; // error: * cannot be used on int // invalid conversions from lvalue int* h = &10; // error: lvalue required for & operand