cout 输出字符串以\0为结尾,
你的s[3]='\0' 后,s[]='abc\0ef';
以\0结尾输出abc
s[3] 就是d字符,s[3]='\0'此步操作后,char s[] 就变成了 "abc\0"了,而字符串或者字符数组遇到\0表示结尾了,所以就是abc了
s 是char类型呀,s[3]='\0'的意思就是只能读取到s[2]呀,char是以'\0'结尾的。s[0]=a,s[1]=b,s[2]=c,后面没有了,所以输出结果是abc
s[3]='\0'; 把字符串S[]里面的第四个位置初始化了,系统在读取的时候,默认的将后面的省略了。 初始化后就相当于结束了。
s[3]=0以后,s的值是"abc\0ef"
cout输出时,遇见\0就停止了
你定义的数组长度只有3,所以只输出前3个字母,如果把s[3]变成s[6].试试