const int x = 50;
int* y = (int *)(&x);
*y = 200;
cout << "x: "<<x<<" address: "<<&x<<endl;
cout << "*y: "<<*y<<" address: "<<y<<endl;
cout<<endl;
以上是一段代碼,輸出的結果是:x: 50 * y=200 地址是一樣的.
但是如果我把int改成float或者double那麼值就都變成了200..
是不是因為原來為int型,一個地址存放了兩個值,float型比較長,無法存放兩個值
求解答~~
對 const 類型變量進行間接的修改,就會導致相同地址的數值是不一樣的,與變量的類型,int 或 float 無關。