请教这个C程序,它的过程是怎样的,请详细一点解说,谢谢

2025-01-04 05:16:37
推荐回答(2个)
回答1:

这个程序整体上就是实现strcat(str1,str2).
#include
void main()
{
char str1[12] = "hello ";
char str2[] = "world";
char *p1 = str1,*p2 = str2;//p1指向str1的首地址,p2指向str2的首地址,数组后面没有填满的就自动加'\0‘,可以说是空吧。
while(*p1) p1++;//只要p1指向的地址不为空,就一直执行p1++,也就是让p1指向下一个地址。具体来说:先指向'h'所在的地址,然后循环一次后指向'e'的地址,不断地执行下去,直到指向'\0‘,就结束。
while(*p2) *p1++ = *p2++;//就是先执行p2所指的地址上的数据'w'传到上面循环完成的p1所指的地址上。然后再让p1 p2同时指向下一个地址。
*p1='\0';//最后添加结束符
puts(str1);
}

回答2:

这个程序,首先定义两个字符串再定义了两个指针分别指向这两个串。while(*p1)是说当第一个串中指针所指非空时执行,这个循环实际是将指针移到串最后。第二个while也是这样,他实现的实际是将两个串接起来。希望对你有帮助。