C / C++

const: It is a promise by the programmer to the compiler, saying that “I won’t change the value of this variable, after I initialize it”

If the promise is break then, the compiler won’t compile the program.

The below code will compile and works, even though it is changing the value of *ptr, because there is NOconst“:

#include <iostream>

using namespace std;

int main()
{
    int *ptr;
    int i = 50;

    ptr = &i;

    cout << "Value at ptr : " << *ptr << endl;

    *ptr = 100;

    cout << "Value at ptr : " << *ptr << endl;

    return 0;
}

The below code doesn’t compile, because *ptr is declared as a const” and trying to change it after initialization:

#include <iostream>

using namespace std;

int main()
{
    const int *ptr;
    int i = 50;

    ptr = &i;

    cout << "Value at ptr : " << *ptr << endl;

    *ptr = 100;

    cout << "Value at ptr : " << *ptr << endl;

    return 0;
}

Compiler will throw the below compilation error:

qualifiers.cpp:14:10: error: read-only variable is not assignable
*ptr = 100;
~~~~ ^
1 error generated.

“As simple as that.”