#if 0 const char *p; //常量指针:只能改变指针的指向,不能通过指针改变值,常用来做形参 char *const p; //指针常量:只能通过指针改变值,不能改变指针的指向 const int *const p; //常量指针常量 值和指针的指向都不能改变 #endif int ivalue = 100; const int *cpi = &ivalue; //*cpi = 200; //不能通过指针改变值 //第1种:将常量指针转换为非常量指针 int *pi = const_cast<int *>(cpi); *pi = 200; cout << *pi <<endl; //第2种:将非常量指针转换为常量指针 const int *cpi2 = const_cast<const int *>(pi); cout << *cpi2 <<endl; int *const intpc = &ivalue; int value2; //intpc = &value2; //error:不能改变指针常量的指向 //ivalue = const_cast<int>(intpc); //error: 不能将指针变量转换为一般变量 const int VALUE = 200; //int value3 = const_cast<int>(VALUE); //error: 不能将常量转换为一般变量 //-------- int value4 = 300; //const int civ = const_cast<const int>(value4); //error: 不能将一般变量转换为常量
时间: 2024-11-01 21:57:56