C语言

#include
void main()
{
struct stud
{
char *name;
char *num;
float score[3];
}st1;
printf("name:");
scanf("%s",&st1.name);
printf("name:");
scanf("%s",&st1.num);
printf("%s %s",&st1.name,&st1.num);

}
输入 name:shuiyrt
num:123456
输出:shui123456 123456
为什么name的内容会这样?

C语言明星没有学好。
结构体中没有为name,num分配空间,只是指针,这样的行为后果是不可预知的。如果输入字符串再长一些,就会崩溃的。
至于为什么输出数据是那样的,涉及到指针长度和内存排列方式,不解释了。查查相关资料吧。