作业帮 > 综合 > 作业

#include main() { char *p1,*p2; p1=(char*)calloc (20,sizeof(

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/08 07:07:17
#include main() { char *p1,*p2; p1=(char*)calloc (20,sizeof(char)); p2=p1
#include
main()
{ char *p1,*p2;
p1=(char*)calloc (20,sizeof(char));
p2=p1;
scanf ("%s%s",p1,p2);
printf("%s%s\n",p1,p2);}
输出的结果是输入的p2字符串的值
因为p1和p2指向了同一个内存区域啊.
再问: 能在具体解释一下吗? 谢谢
再答: p1,p2指向的是同一个内存块的起始地址, 当你输入字符串的时候, 先输入p1,再输入p2,实际上p2的内容覆盖了p1刚才输入的内容 所以最后该内存块是p2输入的内容 同时由于p1和p2指向同一个内存块的起始地址, 所以p1的内容和p2一样的。