为什么输出除了最后一串字符,其他部分都是只输出第一个字符,这个难道不是a[0]等于blue吗?

img

先说结论 是因为被覆盖了 首先你声明的是char类型的数组 a[0]只能存一个字符 , 想要存更多就要往后继续占用更多的空间 blue 就要占4个 空间.你如果不加循环 输出的话确实是blue 。总共进行了三次赋值 第一次在循环外, 第二次 ,第三次在循环内部 给你个图更好理解

img

字符串输入不用 & 符,scanf("%s",a);