1.代码
#include <stdio.h>
#incldue <string.h>
int main()
{
char arr2[] = "hello world!!!";
char arr1[5] = {0};
strcpy(arr1,arr2);
puts(arr1);
puts(arr2);
return 0;
}
2.上述代码的运行结果极有可能arr1可以完整打印,而arr2只打印部分,这是因为变量在栈上开辟时,arr1存不下arr2,强行将arr2的内容赋给arr1时,arr1可能会覆盖arr2的前半部分,有可能会造成arr2覆盖,(此处仅是举例,具体会不会覆盖,或覆盖多少,同样是由编译器的版本或编译器的种类决定的)arr2变成“ld!!!\0”,到运行时puts(arr2); 只会打印ld!!!。