. 若有以下定义和语句: char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b); 则a[5]的值是?

求详解

strcpy(a,b),即把b[]嵌入到a[]中,覆盖原a[]的相应数值,a[]现在是{A,B,C,d,e,f}那么a[5]的值应该为f。

若有以下定义和语句: char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b); 则a[5]的值是'f'。

因为执行strcpy(a,b);时,a数组中被覆盖的元素有4个,zhuan即'A','B','C','\0',所以,a[4]仍是'e',a[5]仍是'f'。

但是,输出printf("%s",a);的值,是ABC

除非,输出printf("%s",a+5);的值,是ef

扩展资料:

int[]x; //声明名称为x的int型数组

x=new int[10]; //x数组中包含有10个元素,并为这10个元素分配内存空间

在声明数组时,也可以将两个语句合并成一行,格式如下:

数据类型[]数组名= new 数据类型[个数];

利用这种格式在声明数组的同时,也分配一块内存供数组使用。如上面的例子可以写成:

int[]x = new int [10];

参考资料来源:百度百科-数组

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-23
strcpy(a,b),即把b[]嵌入到a[]中,覆盖原a[]的相应数值,a[]现在是{A,B,C,d,e,f}
那么a[5]的值应该为f。
第2个回答  2011-06-23
'f'
a[]首先是一个数组,strcpy操作改变了前4个元素,但第5,6,7元素没有被改变,所以还是'e' 'f' 和'\0'本回答被提问者采纳
第3个回答  2011-06-23
DEF
第4个回答  2011-06-23
ABCdef
相似回答