我理解
char* a = "hello";
char* b = "olleh";
strcpy(a,b)
会将b的内容复制到a,但是......
char* a = "hello";
char* b = "olleh";
a = b;
我以前错误地这样做过。我想知道=
运算符在这种情况下对字符串做了什么?
答案 0 :(得分:0)
a和b都指向字符串"olleh"
答案 1 :(得分:0)
strcpy通过查看指针的位置并复制字符来复制字符串,直到复制空终止符。 a和b将指向具有相同内容的不同字符串。
a = b是指针赋值,因此a和b都将指向包含字符串“olleh”的SAME内存。
答案 2 :(得分:0)
{
char *a="hello";
char *b="olleh";
printf("\n Before a=b \n");
printf("a: %d\nb: %d \n\n",a,b);
a=b;
printf("\n After a=b \n");
printf("a: %d\nb: %d ",a,b);
return 0;
}
上述程序不言自明。在赋值(a = b)之前,a和b指向两个不同的字符串,因此它们将打印两个不同的地址。但是在赋值(a = b)之后,a和b的内容将是相同的,因为它们指向相同的字符串,即" hello"。