为什么?一道C题目大家帮帮忙

#includemain(){charb[30],*chp;strcpy(&b[0],"CH");strcpy(&b[1],"DEF");strcpy(&b[2],"AB... #include
main( )
{ char b[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s \n",b);
}
答案CDABC能详细解释下吗?
展开
 我来答
sunnyPower
2006-04-26 · TA获得超过176个赞
知道小有建树答主
回答量:1066
采纳率:0%
帮助的人:1362万
展开全部
char b[30],*chp;
此时b=______________________________
strcpy(&b[0],"CH");
此时b=CH0___________________________
strcpy(&b[1],"DEF");
此时b=CDEF0_________________________
strcpy(&b[2],"ABC");
此时b=CDABC0________________________
以上_表示未知内容的字节,0表示'\0'

&b[0]是b第0位的地址
&b[1]是b第1位的地址
&b[2]是b第2位的地址

因为数组是连续分配内存的,所以strcpy会覆盖后面的字节
字符串以'\0'结束
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式