The built-in ++ and operators can appear on both sides of their operand:
You probably know that a prefix operator first changes its operand before taking its value. For example:
In this
example, n equals 1 after the assignment because the increment operation took place before m's value was taken and assigned to n. By contrast,
In this
example, n equals 0 after the assignment because the increment operation took place after m's original value was taken and assigned to n.
To understand the difference between postfix and prefix operators better, examine the disassembly code generated for these operations. Even if you're not familiar with assembly languages, you can immediately see the difference between the two; simply notice where the inc (increment) assembly directive appears: