字符串复制函数这样写为啥也能输出“key”

img

我这里复制的基点是s2+1,那是不是也就是s2地址目前存放的是系统默认的\0,那puts函数遇到\0不就换行并且不输出吗?为什么还能正常输出"key"? •́.•̀ 

因为你的s1和s2都没有初始化,所以数组里面的数字是多少跟编译器有关。

img

而如果没有初始化,vs下面默认值是54,所以输出就会变成这样:

img

数组没有初始化,里面是个随机数
很显然你随机到了一个换行符
你没事在前面加个int a,多编译几遍,运行看看,应该每次都不一样