Код IT Загрузка примера кода…

C++ main.cpp
#include <iostream>

int main() {
    int value = 42;
    int another = 100;

    // 1. Указатель на константное значение
    const int* p1 = &value;
    // *p1 = 10;      // Ошибка: нельзя изменить значение через p1
    p1 = &another;    // OK: можно изменить сам указатель

    // 2. Константный указатель на изменяемое значение
    int* const p2 = &value;
    *p2 = 99;         // OK: значение можно менять
    // p2 = &another; // Ошибка: нельзя изменить адрес указателя

    // 3. Константный указатель на константное значение
    const int* const p3 = &value;
    // *p3 = 50;      // Ошибка
    // p3 = &another; // Ошибка

    std::cout << "value = " << value << '\n';        // 99
    std::cout << "*p1 = " << *p1 << '\n';            // 100
    std::cout << "*p2 = " << *p2 << '\n';            // 99
    std::cout << "*p3 = " << *p3 << '\n';            // 99

    return 0;
}
#include <iostream>

int main() {
    int value = 42;
    int another = 100;

    // 1. Указатель на константное значение
    const int* p1 = &value;
    // *p1 = 10;      // Ошибка: нельзя изменить значение через p1
    p1 = &another;    // OK: можно изменить сам указатель

    // 2. Константный указатель на изменяемое значение
    int* const p2 = &value;
    *p2 = 99;         // OK: значение можно менять
    // p2 = &another; // Ошибка: нельзя изменить адрес указателя

    // 3. Константный указатель на константное значение
    const int* const p3 = &value;
    // *p3 = 50;      // Ошибка
    // p3 = &another; // Ошибка

    std::cout << "value = " << value << '\n';        // 99
    std::cout << "*p1 = " << *p1 << '\n';            // 100
    std::cout << "*p2 = " << *p2 << '\n';            // 99
    std::cout << "*p3 = " << *p3 << '\n';            // 99

    return 0;
}