C语言:这段程序为什么是这种结果?和我想的不一样呢

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:24:31
#include<stdio.h>
#include<string.h>
main()
{ int i=0;
char a[8]="First";
puts(a);
strcpy(a,"Second");
for(i=0;*(a+i)!='\0';i++)
putchar(*(a+i));
}

输出结果是First
Second

结果应该只有Second才对啊 怎么还有First呢 那个First不是被复制过来的Second覆盖掉了么?怎么还能输出呢?望高人解答

#include<stdio.h>
#include<string.h>
main()
{ int i=0;
char a[8]="First";
puts(a); //输出"First"
strcpy(a,"Second");
for(i=0;*(a+i)!='\0';i++) //输出"Second"
putchar(*(a+i));
}

puts(a);
这句话就是输出a里面的字符串;