--a*b(original value)/b(original value): 5/5
That 2nd 'b' may or may not be the original value. It may be the incremented value. This behavior is not defined by the C++ standard and you must never do this in actual code.
@disch i have one more question. how should it be done if i want the 2nd 'b' to keep the original value ?
It's probably a good idea to always avoid side effects in the expressions to be honest. Trying to do everything in one line is often bad for readability. Much easier to follow: