string str;
str="hi brother";
char * cstr = new char [str.length()+1];
strcpy (cstr, str.c_str());
我们为什么不直接这么做呢
char *cstr = str.c_str();
如果我尝试这样做,它会给出一个错误。我不明白常量char和char是什么意思
为什么我们在这里使用strcpy函数?
如果希望cstr
最终指向字符串或真正的字符数组的副本,则需要在那里使用strcpy
。如果希望它最终指向str
在内部保存的相同字符数组,则可以使用
const char* cstr = str.c_str();
它必须是const
,因为str
拥有该字符串,因此只有它才允许修改该字符串;这就是const
的意思。