//generalized lvalues foo() { int a,b,f; (a, b) += 5; // lvalue required as left operand of assignment a, (b += 5); &(a, b); // lvalue required as unary ā€˜&’ operand a, &b; (a ? b : c) = 5 ; // ā€˜c’ undeclared (first use in this function) (a ? b = 5 : (c = 5)) ; (int)a = 5 ; // lvalue required as left operand of assignment (int)(a = (char *)(int)5) ; (int)a += 5; // lvalue required as left operand of assignment (int)(a = (char *)(int) ((int)a + 5)); (int)f = 1; // lvalue required as left operand of assignment (int *)&f; }