我认为字符串中的文字c++
是const char*
. 而且您不能将const char*
对象分配给non-constant char*
对象。但在 Visual Studio 2010 中。以下代码可以编译而不会出现错误或警告,但会产生运行时错误。
int main(void)
{
char *str2 = "this is good";
str2[0] = 'T';
cout << str2;
getchar();
return 0;
}
而如果我们不修改字符串的值,读取值是可以的:
for(char *cp = str2; *cp !=0; ++cp) {
printf("char is %c\n", *cp);
}
getch();
return 0;
那么为什么我们可以在这里将 const char* 分配给 char* 呢?