Rumah >pembangunan bahagian belakang >C++ >Mengapakah Mengubah suai Alamat Memori Pembolehubah `const` Menunjukkan Nilai Berbeza?
Memahami Gelagat Alamat Memori dengan Pembolehubah dan Pemalar
Dalam coretan kod yang melibatkan pembolehubah const dan penunjuk kepadanya, pemerhatian yang berbeza nilai pada alamat memori yang sama meningkat soalan.
#include <iostream> using namespace std; int main() { const int N = 22; int * pN = const_cast<int*>(&N); *pN = 33; cout << N << '\t' << &N << endl; cout << *pN << '\t' << pN << endl; }
22 0x22ff74 33 0x22ff74
int * pN = const_cast<int*>(&22); *pN = 33;Pengkompil mempunyai haknya untuk menggunakan pengoptimuman ini. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pengkompil tidak terhad kepada tindakan ini. Ia mungkin menggunakan pengoptimuman lain, termasuk yang berpotensi memadamkan data pada pemacu keras anda jika anda terlibat dalam amalan berisiko seperti mengubah suai memori yang dikaitkan dengan pembolehubah const.
Atas ialah kandungan terperinci Mengapakah Mengubah suai Alamat Memori Pembolehubah `const` Menunjukkan Nilai Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!