C语言字符串以'\0'结尾,如果不以该符号结尾则输出%s时会出错,程序一直往存放字符串的地址访问。而你的程序中并没有赋'\0'给那两个数组,所以会出现乱码。没有出现乱码的数组是因为你初始化了,初始化时编译器会给它加上'\0'符号。