【发布时间】:2013-03-22 05:04:52
【问题描述】:
我需要对我要问的问题进行深入的技术解释,而不是解决方案。
我已经学习了一个星期的指针,我理解得很好。但是在编写程序时,我偶然发现了这个错误:
无法将参数“2”的“const std::string”转换为“const char*”到“char* strcpy(char*, const char*)”
所以我很容易用string.c_str() 解决了,没问题。但我对为什么会这样很感兴趣。我一直在疯狂搜索为什么 const 字符串与 const char * 不同。当人们解释一个字符串时,他们会说它与 char * 没有什么不同,那么为什么在字符串之前添加一个 const 不能使其成为 const char *?
【问题讨论】:
-
一个是类,一个是指向原始数据类型的指针?
-
char *是指向string的指针,但不是字符串本身。因此这个错误