「Thinking in C++. おそらく明らかなことを見逃していることを許してください:
#include <iostream> // cout
using namespace std;
int main(){
const int i = 0;
int* j;
j = const_cast<int*>(&i);
*j = 5;
cout << (&i) << "," << i << "," << j << "," << (*j) << endl;
system("pause");
}
私のシステムは次を返します:
「0x22ff74,0,0x22ff74,5」
宣言した変数は 2 つだけで、1 つは int を含み、もう 1 つは同じ int へのポインターを含みます。const_cast は「const から nonconst への変換」だと思っていました。では、cout はどのようにして 3 つの異なる値を見つけるのでしょうか?