All expressions like ++a / b * b-- - a
have undefined behavior because variables are read from and written to without a sequence point in between.
solved Why C++ operation priority is different when dealing with objects or primitive types ++a*b/b– – a [duplicate]