Hi Mike,
Welcome to JavaRanch!
The "++" operator is really two different operators, depending on whether it comes before (prefix) or after (postfix) the variable it's operating on. The postfix version is the one that tends to get people a little confused, as you're experiencing first-hand!
First, here's how postfix ++ works: First, the value of the variable is read and stored. Next, the variable's value is incremented. Finally, the stored value is returned as the value of the expression.
Second, here's how assignment statements work in
Java: the expression on the right hand side is evaluated, including all side-effects, and then the value of the expression is assigned to the variable on the left hand side.
So putting these together: to evaluate "c = c++", first the original value (1) of c is saved, and then c is incremented to 2. The stored value is taken to be the value of the expression on the right hand side, and so that value is put into c. So c starts out as 1, is incremented to 2, and then set back to 1. Of course, a smart compiler ought to be able to optimize this out.
Got it?