第1个回答 2009-10-08
//写了个示例给你.是这样的意思不?
#include <stdio.h>
#include <string>
void test(char *p);
int main()
{
std::string str = "abc";
test((char *)str.c_str());
return 0;
}
void test(char *p)
{
printf("p:%s\n",p);
}
第2个回答 2009-10-08
如果想把const char *转为char*,可以使用const_cast转换,例如:
const char* str = "Hello";
char* strTmp = const_cast<char*>(str);
----------------------------------------------------
试了下,这样做不行。strTmp[2] = 'x';会导致运行时错误!
第3个回答 2009-10-08
字符串的const char*虽然可以通过 const_cast和 c 式强转变为 char*,但这么做是不安全的,你转换成char*而不要const char*无非是要改变指向的值,c++标准已经说了,对字符串来说,这么做是未定义的。