char *向const char *转化
char * 向const char *可以直接赋值
const char *向char *转化
const char * src = "hello";
char * dest; //
strcpy(dest, src);
delete []dest;
采用上面这种方法是不行的,在编译阶段可能不会给出错误提示,或者只给出警告,但在运行阶段会给出segmention fault的错误提示,这是因为const char * src认为src是常量,当把地址赋给char时,char能修改常量,所以错误,需要采用下列方法。
const char * src = "hello";
char * dest = new char[strlen(src)]; // dest必须申请新的地址,故要用new提前分配地址
strcpy(dest, src);
delete []dest;
网友评论