不是说一定不行,也有可能可以。像你这种定义就有可能可以,因为如果s1,s2 在分配内存时就是连续的,那么就是越界了,你这条打印出来也会对,因为他没有越界到别的地方,都是字符串空间,你要同时把s2也打印出来,看看s2有没有被改变。c并不检测越界,只有在动行时有可能会出现执行错误。
strcat传进去的应该是指针吧
sizeof(s1)输出的是s1的长度
但输出s1的时候没有'\0' ,就会一直输出
就像你如果定义s1[5]="HELLO" 输出s1的时候有一些奇怪的东西
敢问你用的什么编译器,怎么可能执行成功??我试了试报错了。。。
内存越界了