为啥显示的是1啊。哪里出问题了?

图片说明

char a[] = {0}; //将a初始化为0,其中数组中只有一个元素

所以后面对a的输入即使是close,a中只存了'c'一个字符,往后就会发生越界,但是C++编译器不会对普通数组进行越界检查,lose仍可能会放到a[0]后面的内存,也有可能在后面的代码运行中a后面的内存被覆盖,因此,a后面的内存是不可预知的,你的代码出现了数组越界的错误,导致最终结构不可预料。

因为b2没有初始化,所以结果是多少不确定。