Hidden operators and values
Many operators in C are more versatile than they appear to be at first glance. Take, for example, the following operators:
These operators can be used in some surprising ways to make C source code elegant and compact. (See Expressions and operators, if you need a refresher in what they do.) All of them can form expressions that have their own values. Such an expression can be taken as a whole (a "black box") and treated as a single value, which can then be assigned and compared to other expressions, in effect, "hidden" within another expression.
The value of an expression is the result of the operation carried out in the expression. Increment and decrement statements have a value that is one greater than or one less than the value of the variable they act upon, respectively.
Consider the following two statements:
c = 5; c++;
c++ in the above context has the value 6.
Now consider these statements:
c = 5; c--;
c-- in the above context has the value 4.