这个输出是啥解释一下

这个输出是啥解释一下

问题描述:

以下程序:int main(void)

 

{char *p1,*p2,str[50]=”ABCDEFG”;

 

p1="abcd";p2="efgh";

 

strcpy(str+1,p2+1); strcpy(str+3,p1+3);

 

printf("%s",str);

 

return 0;

 

}

 

程序运行后的输出结果是().

Afgd,

第一个strcpy是将p2+1也就是p2第二个字符开始(f开始)拷贝到str+1也就是B的位置处,执行完成后是Afgh

第二个strcpy是将p1+3也就是p1第四个字符开始(d开始)拷贝到str+3也就是h处,执行后就是Afgd