Эти два объявления имеют принципиально разные значения в отношении того, что можно и нельзя изменять.
Это неконстантный указатель на константные данные.
нельзя изменятьmyPointer = anotherAddress;не можешь изменить значение: *myPointer = 'x'; вызовет ошибку компилятораЭто константный указатель на неконстантные данные.
нельзя менять, чтобы он указывал в другое местоне можешь переприсвоить указатель: myPointer = anotherAddress; вызовет ошибку компилятора*myPointer = 'x'; разрешеноПолезный приём, чтобы запомнить разницу: читай объявление справа налево.
const char *: читается как «указатель на const char»char *const: читается как «const указатель на char»const char *ptr1; // Можешь менять ptr1, не можешь менять *ptr1
char *const ptr2; // Не можешь менять ptr2, можешь менять *ptr2
Позиция const относительно звёздочки определяет, что именно константно: если const стоит перед *, то константны данные; если после — то константен указатель.
В объявлении const char *myPointer сам указатель можно переassign на другой адрес без ошибки компилятора.
Новый — ещё не проверен сообществом
Вы