 You've already learned about the plus plus increment and minus minus decrement operators. They update the variable without needing an equal sign. The variable is changed in place. You can also put the operator before the variable name as shown here. Why two versions and what's the difference? When the operators are all by themselves, there's no difference. But when you put them in an expression with other operations, there's a big difference. In this example, the plus plus follows the variable and it's called a post increment. This is what things look like after we initialize quantity in the first statement. Here's what happens when C encounters the second statement. It accesses the value of quantity, which is 10. Then the plus plus takes effect and the variable quantity becomes 11. Then we do the multiplication, getting a result of 50, and assign the result on the right hand side to the variable total. Now let's try it with the plus plus before the variable name. This is called a pre increment. At the end of the first statement, quantity is still 10. When evaluating the right hand side of the second statement, because the plus plus comes before the variable name, the increment happens before accessing the value of the variable. Now when we look at quantity, we get 11 and multiply that by 5. And here's what we end up with. Quantity is 11, but this time the total is 55. How would you evaluate an expression like this, which involves more than one increment and decrement? Here's a technique that I've found to be very useful. Find all the variables with a pre operator, the plus plus or minus minus preceding the variable name, and write it out before the statement. Now find everything with a post operator, the plus plus or minus minus following the variable name, and write it out after the statement. Then go through the statements in order. Here's the situation after the first two statements. Add 1 to y, multiply x by y, and finally subtract 1 from x. And there's the correct answer with all the correct values for the variables. What happens if you use the same variable with both pre and post operators? The answer is don't. Just don't. Not only is it hard to understand, but in C the result is undefined. It can depend on which machine architecture and compiler you're using. In summary, much of the time you will use the increment and decrement operators all by themselves. When you're using pointers, however, these operators are used in expressions, and you need to know if a pointer is incremented before or after you access its value.