I would rather say that the comma operator evaluate each operation one after each other. As you use parenthesis, everything inside is evaluated, then the assignment is done with the last evaluation done inside the parenthesis, i.e 48.
Then only 48 should be assigned to the "a" variable. 32 is evaluated, but since it is only a value nothing is done. The same for 3, 3, 4, 77 and finally 48. 48 being the last operation, it is the value that "gets out the parenthesis". Then a = 48 is evaluated, and 48 is stored into a.
But whatever the way it works, a will have the same value, and if you have a good compiler all of this will be optimized to a = 48.