C++自学教材P35
强制类型转换示例:
include
using namespace std;
int main()
{
int a = 10;
const int* p = &a; //不能使用常量指针p修改a的值
const int ca = 30; //被const修饰
int* q;
cout << "a的地址为:\t" << &a << "\ta的值为:\t" << a << endl;
cout << "p指向的地址为:" << p << "\tp的值为:\t" << p << endl;
q = const_cast<int>(p); //去除p的常量性赋给q,如果写q = p;会报错
q = 20; //如果写p=20;是错误的
cout << "a的地址为:\t" << &a << "\ta的值为:\t" << a << endl;
cout << "p指向的地址为:" << p << "\tp的值为:\t" << p << endl;
cout << "q指向的地址为:" << q << "\tq的值为:\t" << q << endl;
cout << "分界线" << endl;
p = &ca; //ca的值不能修改
q = const_cast<int>(p); //去除p的常量性赋给q,如果写q = p;会报错
q = 40; //p=40;错误
cout << "ca的地址为:\t" << &ca << "\tca的值为:\t" << ca << endl;
cout << "p的地址为:\t" << &p << "\tp的值为:\t" << p << endl;
cout << "q的地址为:\t" << &q << "\tq的值为:\t" << *q << endl;
return 0;
}
调试结果如下:


浙公网安备 33010602011771号