char a[4]="your" 这个有问题。应当为char a[5]="your"。'\0'占据内存空间但不计入字符串的长度。上述字符串的长度是4。'\0'只是表示一个字符串的结束,它的存储也要占一个字节的空间,但是your是由四个字符组成的。这二者不矛盾。
char a[4]="your" 有问题,用串自动初始化字符数组,但长度不够。"your"需要五个元素。即y,o,u,r,\0可以手动初始化程序your,但不能当串使用。
首先,第一个没有问题