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 << "\t
q的值为:\t" << *q << endl;
return 0;
}
调试结果如下:

posted @ 2020-11-23 00:14  Doinb。  阅读(63)  评论(0)    收藏  举报