char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b)

. 若有以下定义和语句: char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b); 则a[5]的值是?为什么a遇到\0不会结束,a5还是f?

若有以下定义和语句: char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b); 则a[5]的值是'f'。
因为执行strcpy(a,b);时,a数组中被覆盖的元素有4个,即'A','B','C','\0',所以,a[4]仍是'e',a[5]仍是'f'。
但是,输出printf("%s",a);的值,是ABC
除非,输出printf("%s",a+5);的值,是ef
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-04
a是一个字符数组,拷贝过程只改变了a[0]到a[3],对后面的数无影响。