详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(sizeof(char)*20);q=p;scanf("%s %s",p,q);printf("%s,%s\n",p,q);}若输入abc def,则输出为:( )

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/11 14:35:57
详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(sizeof(char)*20);q=p;scanf(
xRnP+FV%8TK\6TP H $;() jrQcKm93sܛFyN}1nk1:JVl;(Yn_8ފ%.BqbP|+)'vR$*VLbږO(+([gXesy>rnp˹+%f7iL?#&(w'F X(_G܅٩DoZ6Agw h7Z&A|Q':]Agx6n ^XkHoTg?h'dCPi239c6#n{z YC2+(fŃ2c0^9Sr^7d;D㗵vs0쭬Y/ z]=@`bfD'?Cp*ಋI J

详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(sizeof(char)*20);q=p;scanf("%s %s",p,q);printf("%s,%s\n",p,q);}若输入abc def,则输出为:( )
详解下面的程序题.
#include
void main()
{ char *p,*q;
p=(char *)malloc(sizeof(char)*20);
q=p;
scanf("%s %s",p,q);
printf("%s,%s\n",p,q);
}
若输入abc def,则输出为:( )

详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(sizeof(char)*20);q=p;scanf("%s %s",p,q);printf("%s,%s\n",p,q);}若输入abc def,则输出为:( )
def,def
缺少个#include
另外用完后把malloc的内存释放掉
程序首先申请了20个字节大小的堆内存,用指针p指向它
然后再用指针q指向它
接着输入两个字符串填到p和q所指向的内存
最后打出p和q指向的内存中的字符串
因为p跟q指向同一块内存,所以在scanf的时候只有一个字符串写入了内存,前面写入内存的字符串被后来写入的覆盖了