zhumengyun 发表于 2014-8-11 16:30:52

结构体指针在什么时候初始化合适

#include <stdio.h>
struct Student
{
        char name;
        float score;

}wa,*p=&wa;
main()
{
        struct Student wa={"ppp",98.0};

        printf("wa:%s,%f\n",wa.name ,wa.score );

    printf("wa:%s,%f\n",p->name,p->score );

        printf("wa:%s,%f\n",(*p).name ,(*p).score );


}
程序运行结过是
wa: ppp.98.000000
wa:    ,      0.000000
wa:    ,      0.000000
在定义结构体指针后直接给这个指针赋初值,但为什么第二三个输出语句输出的结构不对。(指针初值没有起作用)
若程序变为
#include <stdio.h>struct Student{        char name;        float score;
}wa={"ppp",98.0},*p=&wa;main(){       
        printf("wa:%s,%f\n",wa.name ,wa.score );
    printf("wa:%s,%f\n",p->name,p->score );        printf("wa:%s,%f\n",(*p).name ,(*p).score );

}程序运行结过是wa: ppp.98.000000wa: ppp.98.000000wa: ppp.98.000000结果就正确了。


小靚同学Leon 发表于 2014-8-11 18:24:30

初始化指针的时候,指针p指向变量wa,但是此时wa是空,所以打出来字符串是空,数字是0.

zhumengyun 发表于 2014-8-11 18:26:51

谢谢回复,懂了。

小靚同学Leon 发表于 2014-8-11 19:44:31

zhumengyun 发表于 2014-8-11 18:26
谢谢回复,懂了。

已经解决的帖子请将帖子标记为已解决,谢谢合作哈。

zhumengyun 发表于 2014-8-12 13:16:54

好的,新手上路,请多多指教。

我爱鱼C论坛 发表于 2015-2-19 21:13:31

页: [1]
查看完整版本: 结构体指针在什么时候初始化合适