这就是指针的工作原理.您看到的结果是正常和正确的.
让我们列出所有变量以及它们在声明时在内存中指向的字符串:
str1 -> "One" str2 -> "Two"
然后,执行一些赋值指令:
test = str2;
此分配指针的值str2
来test
.所以指针是
str1 -> "One" str2 -> "Two" test -> "Two"
然后
str2 = str1;
分配指针的值str1
来str2
.现在指针是
str1 -> "One" str2 -> "One" test -> "Two"
然后打印test
,str2
指向最初指向的内容,即"两个".
我想,你认为你既然分配str2
到的价值str1
,以及test
它的值str2
,该值str1
在某种程度上倾泻而下test
.不是这种情况.一旦test
分配了值,就会丢失有关该值来源的信息.如果你想要test
的值与s相同str1
,你可以颠倒你的赋值操作的顺序:
str2 = str1; test = str2;