Think about it. ++a can't be added to something else until the ++ step is completed. So to finish this math my bet is the compiler completed the increments first to varible a and since it's only a pointer to a, a gets incremented twice before the final a + a is computed.
The compiler has to serialize the operations to something like:
a++;a++; d = a + a;
Which is 14.
Now you could get other answers by writing:
d = a++; d+=a++;
d = 2 * a++;