ZAHNGFEIYANGFG 2014-08-19 19:22
浏览 222
已采纳

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的内容会这样?

  • 写回答

1条回答

  • winion_c 2014-08-19 21:35
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?