Does this delete all the pointers or does this just delete the first pointer p1?
It is equivalent to:
That is, it
p1 and then the comma operator is applied to the result (of which there is none) and
p2. The expressions
p5 are simply evaluated and the results discarded.