Я ничего не понимаю здесь. В следующем коде я определил целое число и постоянное целое число.Используйте указатель const int * const для указания на int
Я могу иметь постоянный указатель (int * const), указывающий на целое число. См. Четвертую строку кода.
Тот же указатель константы (int * const) не может указывать на постоянное целое число. См. Пятую строчку.
Постоянный указатель на константу (const int * const) может указывать на константное целое число. Этого я и ожидал.
Однако тот же самый (const int * const) указатель может указывать на не постоянное целое число. См. Последнюю строку. Почему и как это возможно?
int const constVar = 42;
int variable = 11;
int* const constPointer1 = &variable;
int* const constPointer2 = &constVar; // not allowed
const int* const constPointer3 = &constVar; // perfectly ok
const int* const constPointer4 = &variable; // also ok, but why?
Кажется, что у вас есть недоразумение о том, что означает ключевое слово const. 'const int *' не означает «int, на который я указываю is is const», это означает «я не буду использовать этот указатель для изменения int, на который я указываю». Является ли int, на который вы указываете, const или нет, не изменяет того, что происходит. – Bill
Спасибо за все ваши ответы и комментарии. Я ошибался, как писал Билл в своем комментарии. C++ иногда бывает трудно получить. –