执行完scanf("%s", ch);这句的时候,n=3,已经赋好的值,直接变为n=0了, 把数组长度改变,就好了,(为 \0 保留了一个存储空间) 和C语言不一样,搞不懂为什么,是Codeblocks 中的一个bug 吗?