在写模拟实现strcpy时,在修改目标字符串时,编译出错了。
void my_strcpy(char *dest,const char * str)
{
assert(str != NULL);
while (*dest++ = *str++)
{
;
}
}
int main()
{
char str1[50] = "hello world";
char str2[] = { 0 };
char *str3 = "123456789";
my_strcpy(str2, str1);
my_strcpy(str3, str1);
printf("%s\n", str2);
printf("%s\n", str3);
system("pause");
return 0;
}
这是这段代码,第一次拷贝完并可以进行打印,然而第二次就不能通过编译了。查看了网上资料后得知:
指向 "字符串常量" 和 指向字符串的" 常量的指针"
前者字符串是常量, 后者指针是常量.
常量就是 "不许修改的量&