BTW, this is a good question. To really understand the results, one needs to know how compilers work AND some exposure to assembly language.
Now what if the first printf statement is:
print("a=%d a++=%d ++a=%d\n", a, a++, ++a);
what result will you see?