strcpy(s1,s2)其中s1的长度必须大于s2的,否则内存戳穿发生错误,其次把s2copy到s1后系统会在后面添加\0,计算长度时仍会考虑复制后的\0
strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目录字符串中,当遇到字符串末尾的null字符(\0)时,它会删去该字符,并结束拷贝
strcpy是复制字符数组执行完后目标数组arr2被覆盖
也就是arr2成了"ABCDE",所以strlen函数返回还是5
一个汉字占2个字符,三个汉字是6个字符,再加上\0,你这个越界了。
而结构体内部元素是顺序存储的,先复制进去
重庆市\0,再复制进去的字符串将这个'\0'改成'1',就出现了以上的情况。
char arr2[5] = "hello";这样是无法通过编译的,因为最后有一个\0
应该是arr2[6]