As both x and y are post incremented or decremented , so the value assigned first and then gets incremented or decremented, so in cout statement value of x (i.e. 4) and y (i.e. 2) is used and then gets incremented and decremented respectively, hence results in 8.
First you multiply 2 and 4 and print 8
In c++ it does the prefix then the math then the postfix so in this case it did the math then the postfix so if you tried to print out x value after that it will give you 5 and if you did the same for y it will give you 1.