关于strcpy函数的应用的疑惑

img


s1=s2这句话修改了s1的指向,使之指向s2所指向的字符串,但是为什么执行strcpy(s1,s2)这句之后,s1字符串会改变呢?s1不是已经不指向原来那条字符串了吗?

是的,两个的最终结果s1的值是一样的,但是实现方法不一样,书里写的是让你比较两个的效果。
s1=s2,s1之前的地址内容没有改变,但s1现在是指向s2的地址了,地址改变了
strcpy(s1,s2),是s1的内容和s2一样,但是s1的地址没有改变

书上让你对比两者的区别,不是先执行s1=s2,再执行strcpy(s1,s2)啊
s1=s2是将s1指针指向s2
strcpy(s1,s2)是将s2字符串赋值到s1字符串,这就是区别。

书上的意思是让你对比这两个语句的不同效果,要分开看这两条语句,这两条语句没有先后顺序
具体的区别下面解释的很清楚呀

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^