为什么abc def输出后defdef空格消失

#include <stdlib.h>
#include <stdio.h>
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时,p和q分别接收abc和def,空格是不接收的,作为两个字符串的分隔符了。所以你输出p和q时,由于中间没有加空格分隔,所以两个字符串会连在一起输出的

shayisi