一道简单的才语言习题,求详细解释.#include #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);}若输入abd def,则输出为( ) A.def,def B.abc,def C.abc,d D.d,d
问题描述:
一道简单的才语言习题,求详细解释.
#include
#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);}
若输入abd def,则输出为( ) A.def,def B.abc,def C.abc,d D.d,d
答
答案:A.def,def
q=p;
scanf("%s%s",p,q);这里先是p接收字符串,它接收了abd,之后q接收字符串,它接收def,由于p和q指向同一个地址,所以只存储了def.