Из (4.4/1) читаем
Значение r типа «указатель на cv1 T» может быть преобразовано в значение r типа «указатель на cv2 T», если «cv2 T» является более подходящим для cv, чем «cv1 T».
Я не знаю, где стандарт определяет тип «больше cv-qualifield», но, насколько я понял, декларатор с const более квалифицирован cv, чем неконстантный.
Для следующих преобразований, как цитата из стандарта подходит или как вы узнаете, какая из них менее или более квалифицирована cv?
int *const c1 = 0;
int const* c2 = 0;
const int *const c3 = 0;
c1 = c2; // allowed
c1 = c3; // allowed
Обновление:
c2 = c1;
c2 = c3;