int* const p;
constの位置がポイントです。アスタリスクの右側にconstがある int* const p は、ポインタ変数そのものがconstという意味になります。そのため初期化後にpへ別のアドレスを代入することはできませんが、*p = 10; のように指す先の値を書き換えることは可能です。逆に const int* p(または int const* p)は、指す先の値が変更不可でポインタは付け替え可能です。両方を禁止したい場合は const int* const p と書きます。読み方のコツは、constを右から左へ読むことです。