Friday 4 January 2013

Increase and decrease (++, --)

Shortening even more some expressions, the increase operator (++) and the decrease operator (--) increase or
reduce by one the value stored in a variable. They are equivalent to +=1and to -=1, respectively. Thus:



are all equivalent in its functionality: the three of them increase by one the value of c.
In the early C compilers, the three previous expressions probably produced different executable code depending on
which one was used. Nowadays, this type of code optimization is generally done automatically by the compiler,
thus the three expressions should produce exactly the same executable code.
A characteristic of this operator is that it can be used both as a prefix and as a suffix. That means that it can be
written either before the variable identifier (++a) or after it (a++). Although in simple expressions like a++or ++a
both have exactly the same meaning, in other expressions in which the result of the increase or decrease operation
is evaluated as a value in an outer expression they may have an important difference in their meaning:In the case
that the increase operator is used as a prefix (++a) the value is increased before the result of the expression is
evaluated and therefore the increased value is considered in the outer expression; in case that it is used as a suffix
(a++) the value stored in a is increased after being evaluated and therefore the value stored before the increase
operation is evaluated in the outer expression. Notice the difference:



In Example 1, B is increased before its value is copied to A. While in Example 2, the value of Bis copied to A and then B is increased.


No comments:

Post a Comment