Немного дополню. Постинкремент действительно имеет более высокий приоритет, поэтому в *p++ сначала выполнится именно ++. Но эта операция хитрая и не эквивалентна +=1. Для реализации сходной логики в своих классах (C++) делают примерно так:
A::operator++(int) { //Постфиксный
A temp(*this);
*this+=1;
return temp;
}
То есть, возвращается копия, над которой производятся дальнейшие операции в выражении, хотя сам объект уже увеличен.