c语言问题?

来个大佬详解,看不懂

很久没碰这东西了。
我来解释下:
第一个while的循环是为了让指针指向第一个字符串的结尾,其目的是让第一个字符串做主串用。
第二个while的循环功能是字符连接。我们从第一个while循环得知,第一个字符串是做主串用的,指针已指向该串的结尾。那么第二个while循环是从第一个字符串结尾开始自加, 第二个字符串首地址自加。(*s1=*s2, 这个你不要被误导了,这个是当前s1<s1结尾处>地址中的值成了s2<开始处>。)直到s2中的值为空, 停止循环(付值完成)。

第三个s1=p, 这样理解:先前时, 已有一段char *XXXX的, 这个是为了保存s1首指针地址的。现在s1=p 是为了让s1指针重新得到它的首地址。

有朋友说要return啥的, 这个是不需要return。 因为该函数定义的形参是指针类型。形参的改变可以影响实参的改变。
这个题目是考察对指针的理解和基本用法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-30
用指针将两个字符串链接接起来,
前一个while循环,确定s1字符串走完,
第二个while开始将S1的逐个字符复制给s1走完,也就是末尾,
这样就可以把字符串都导入到S1中
最后一个空写的应该写return s1追问

第二个while不太明白啊

本回答被网友采纳
第2个回答  2020-08-31
p指针指向字符串s1首部
第一个while让指针s1移动到字符串s1尾部
第二个while把字符串s2拷贝到字符串s1(指针s1移动到字符串s1尾部了,这是追加在s1字符串后面)
最后一个s1=p应该可以不要,s1是局部变量(形参)不会影响实参,只要两个while和*s1='\0'就够了,不需要指针p,而且函数没有返回值,楼上说return s1也不对,也不需要返回值
相似回答