首页 > 代码库 > const_cast的使用_c++课程学习

const_cast的使用_c++课程学习

    #if 0
    const   char *p; //常量指针:只能改变指针的指向,不能通过指针改变值,常用来做形参
    char *const  p;  //指针常量:只能通过指针改变值,不能改变指针的指向
    const   int *const p; //常量指针常量 值和指针的指向都不能改变
    #endif

    int ivalue = http://www.mamicode.com/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 = http://www.mamicode.com/const_cast(intpc);   //error: 不能将指针变量转换为一般变量

     const int  VALUE = http://www.mamicode.com/200;
     //int value3 = const_cast<int>(VALUE); //error: 不能将常量转换为一般变量
     //--------
     int    value4 = 300;
     //const int civ = const_cast<const int>(value4); //error: 不能将一般变量转换为常量

 

const_cast的使用_c++课程学习