字符串的结束

有以下程序,若从键盘输入abc def↙,则输出结果是      。 

void main() 
{ 
char *p,*q; 
p=(char *) malloc(sizeof (char)*20);q=p; 
scanf ("%s%s",p,q); printf ("%s %s\n",p,q); 
} 

因为指针p和q都是指向动态分配的20个字节的内存单元,当使用scanf来读取输入的字符串到该内存块时,首先将abc存入到指针p所指的内存块,输入中的空格符,表示字符串输入结束,下一字符串def将存入到q所指的内存块,即原先的字符串abc将被覆盖掉。所以输出的结构就应是def def。即正确答案是def def

猜你喜欢

转载自blog.csdn.net/qq_41822235/article/details/81349517