Why can't I do ++i++ in C-like languages?
Half jokingly half serious : Why can't I do ++i++ in C-like languages, specifically in C#? I'd expect it to increment the value, use that in my expression, then increment again. Short answer: i++ is not an "lvalue", so can't be the subject of an assignment. Eric Lippert Though the short answer "it's not an lvalue" is correct , that's perhaps just begging the question. Why isn't it an lvalue ? Or, as we say in C#, a variable . The reason is because you cannot have your cake and eat it too . Work it out logically: First off, the meaning of a ++ operator in C#, whether postfix or prefix, is "take