I find that in the following code snippet
const int i = 2; const int* ptr1= &i; int* ptr2 = (int*)ptr1; *ptr2 =3;
i's value changes to 3. What I could like to know is why is this allowed. What are the situations in which this could become helpful?
i