B项的意思是把第二行代码char s1[7]改成 char s1[]; 错误的原因是定义字符数组时你是必须指定其大小的,否则编译器是没办法给它分配内存空间的。至于为什么C可以, 因为第一行代码是有赋值的,编译器可以计算出city字符数组的大小.