Как одна и та же ячейка памяти может содержать разные значения в следующей программе? Я использую компилятор g++.
код:
#include<iostream>
using namespace std;
int main()
{
const int i=100;
int *j = const_cast<int*>(&i);
*j=1;
cout<<"The value of i is:"<<i<<endl;
cout<<"The value j holds:"<<*j<<endl;
cout<<"The address of i is:"<<&i<<endl;
cout<<"The address of j is:"< <j<<endl;
}
вывод:
The value of i is:100
The value j holds:1
The address of i is:0xbffbe79c
The address of j is:0xbffbe79c
i
и использует значение100
непосредственно в вашем оператореcout
. Изменение константной переменной является поведением undefined. - person Jcl   schedule 24.06.2013