在C++里,把常量指针(即指向长脸的指针)赋值给非常量指针时,会提示错误,这时候就需要用到const_cast,看下面的两个转换情形:

int j = 0;
const int i = j;
int &k = const_cast<int &>(i);
k++;
printf("%d", i);


string a = "123";
char *p = const_cast<char*>(a.c_str());
strcpy(p, "abc");
printf("%s", a.c_str());


结果是常量被修改了,这是可以去除常量的办法。