We have seen how you can use unary operators to increment and decrement variables. We can use these in conditions to allow us to update and test a variable at the same time:

count = 1 ;
if ( --count ) {
    /* because count is made 0 */
    /* before the test we never*/
    /* get here                */
}

count = 0 ;

if ( count-- ) {
    /* because the 0 value of */
    /* count is tested we     */
    /* never get here         */
}

There is also a unary operator which uses the ! character. This is NOT and can be applied to a single operand or a logical expression in brackets. It does what it says, in that it inverts the bits and can therefore invert the sense of a condition.