There is a rule that expalin that a variable can not be upadated twice in an expression. if such things happen the result depends upon the implementation of that specific compiler .
No, there's no such rule. You can write x=a++ + ++b + --b + --a; variables 'a' and 'b' were updated more than once, and there is no mistake in this expression.
As, Aseem said there is no mistake in his statement. But if the statement only consists of a single variable that is incremented or decremented multiple times then the variation starts to occur. Eg: x = ++x + x++ - --x + x-- In this statement x will have different values for different compilers, I.e. it is compiler implementation dependent