Both Microsoft C++ compiler and
Sun Workshop C compiler evaluates
the expression and increments B and C
twice.
That's permitted too. You are writing an undefined program, which means
that any result is permitted by the compiler. Please read the C standard
carefully on the topic of "sequence points".