char*和const char *的转换
- const char* 转 char*
(1)为什么不能直接赋值?
这里你可以这么想,假如const char类型字符串可以赋值给char类型,那不就意味着可以通过char变量来修改原本const char变量的值了吗?这显然是不可行的。
(2)转换方式 – ( const_cast是常用的去const顶层限定的方法)
const char* str = "this is a test";
char* chs = const_cast<char*>(str);
- char* 转const char *
(1)直接赋值。置于怎样生成一个char*类型变量并初始化,使用const_cast强转,或者是修改下编译器的字符集即可。也就是说支持隐式转换,这一点在函数传参过程体现尤为明显。
(2)使用指针类型强转。如下所示,使用static_cast或const_cast皆可。
const char* str = "this is a test";
char* ch = const_cast<char*>(str);
const char* dst = static_cast<const char*>(ch);
const char