关于#c++#的问题,请各位专家解答!

img


答案是A和B,为什么B项是错的呢,我是初学者,能解释详细一些吗

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