es por el orden de precedencia.
el ++ tiene mas orden de precedencia que el * (deferenciar o puntero), por lo tanto se "ejecuta" primero
Supongamos que tenes:
ptr=1000;
y
*ptr = 222;
Hacer:
Como ambos estan fueras del parentesis primer se ejecuta el ++, por lo tanto ptr se incrementa en 1 unidad (si ocupa 4 bytes el tipo, incrementa en 4), es decir queda en 1001 si a lo que apunta es un byte, luego se accede al contenido de esa memoria. Lo cual no se hace nada con eso. Y es lo mismo que nada. El unico efecto que tuvo fue lo mismo que hacer ptr++;
Distinto esto:
Ahora si el operador * se encuentra DENTRO del parentesis, los parentesis y el operador ++ tiene la MISMA precendecia, entonces al tener lo mismo comienza a regir la asociatividad que es de izquierda a derecha en ese caso, por lo tanto primero se ejecuta el parentesis y lo adentro, es decir se accede al contenido de ptr, en este caso es 222 y luego se incrementa en 1, ahora si quedando en 223.
Precendecia y Asociatividad:
(Las tablas se encuentras un poco mas abajo del inicio de la pagina)
https://es.wikipedia.org/wiki/Anexo:Operadores_de_C_y_C%2B%2BLa precendecia esta en orden descendente y cada fila o ciertos operadores tienen una asociatividad especifica.