// const 转换 #include using namespace std; void change(const int *p, int value) { int *q = const_cast(p); // 转换为非 const 指针 *q = value; } int main() { int a = 10; const int b = 30; // 存储在符号表,在栈中没有空间 // 1. 将变量转化为 const 引用变量【可以】 const int &a1 = const_cast(a); // 2. 将变量地址转化为 const 指针变量【可以】 const int *a2 = const_cast(&a); // 3. 去掉 b 的 const 修饰 // b 在取地址时在占中开辟空间,b1 指向空间 // int b1 = const_cast(b);【不可以】 int &b1 = const_cast(b); b1 = 100; cout << "b = " << b << endl; cout << "b1 = " << b1 << endl; // 4. 去掉 a2 的 const 修饰 int *a3 = const_cast(a2); *a3 = 200; cout << "*a2 = " << *a2 << endl; cout << "*a3 = " << *a3 << endl; // 5. 将 a3 转化为 const 指针变量【可以】 const int *a4 = const_cast(a3); // *a4 = 100; cout << "*a4 = " << *a4 << endl; cout << "*a3 = " << *a3 << endl; return 0; }