オシイです
関節演算子 * よりも、後置インクリメントのほうが優先されますので、
コード:
void p(int *c){
*c++;
}
は
コード:
void p(int *c){
*(c++);
}
であるかのように振る舞い、cというポインタ自体を進めてからそのアドレスの変数を呼び出して終わります。
aの値が1になる
つまり、渡したポインタの指す先の変数を1増やしたいのであれば、
cとして受け取ったポインタの指す変数を取り出して、その値を増やす という形になるように書かないといけないですね