int i = 2;
int j = 8;
int *p = &i;
int *q = &j;
したがって、この時点で、p が 2 を指し、q が 8 を指していることは明らかです。
(*p) = (*q);
ここで、ポインター p は q を指し、q は j を指します。j = 8 なので、p は値 8 を指す必要があります。最後の部分は次のとおりです。
i++;
printf("%d %d\n", *p, *q);
これの出力は 9 8 です。ただし、p が q を指しているため、これを理解できません。ポインタ p は 8 を指しているため、この変更の影響を受けないはずではありませんか? 8 が 1 ずつ増えるのはなぜですか? p はもともと i を指していましたが、ポインタを q に変更したため、この結果はわかりません。
追記:皆様ありがとうございました。あなたの説明はすべて私にとって完全に理にかなっています。