若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是______。

admin2013-02-23  59

问题 若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是______。

选项 A、char y[10]; strcpy(y,x[4]);
B、char y[10]; strcpy(++y,&x[1]);
C、char y[10],*s; strcpy(s=y+5,x);
D、char y[10],*s; strcpy(s=y+1,x+1);

答案D

解析 选项A中x[4]是取字符e,也就是将字符复制到y中,strcpy实现的是地址的复制所以选项A错误;选项B中++y是错误的,不允许对常量进行自加运算(y是—个确定的地址值),所以选项B错误;选项C指针变量s指向了y向后的第5位,则存放x时会出现越界问题,所以选项C错误;选项D中,指针变量s指向了y向后的第—位,此时s可存放数据的长度为9,而地址“x+1”起的字符串的地址长度也刚好为9(包括“\0”),所以开始复制不会出现地址越界问题,故选项D正确。
转载请注明原文地址:https://kaotiyun.com/show/6TJp777K
0

最新回复(0)