Because b- is calculated first, and then (a++, b++) is executed, which is equivalent to++b in brackets;
When calculating b-, assign b to brackets to calculate++.
If it becomes printf ("%d, %d ",(a++, ++b), -b), the result is 8,7.
Because you subtract 1 from b first, and then put it in parentheses.