为什么这里定义的字符数组arr是10个元素,但是后面cin.read能输入10个字符呢,不是应该是9个,最后一个是\0吗?
正解:数组可以越界,你如果输入十个字符,cin就会在第十一个字符处录入字符0,但是因为第十一个字符处的内存并没有被开辟进数组内,这种情况就是数组越界,这种情况是有崩溃风险的,所以尽量不要越界
arr是一个指针,指向一个内存块的首地址,read函数可不会管arr这个数组有多大,它只会读取10个字符,依次从首地址开始排列,超出数组大小一样接着排。不信你输入20个字符试试,它一样可以输入输出。如果你在arr后面再定义一个10个长度的数组b,这个数组你不用赋值,你只要对arr输入20个字符,你直接输出数组b,你还能输出第后边十个字符。