结构体指针在什么时候初始化合适
#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结果就正确了。
初始化指针的时候,指针p指向变量wa,但是此时wa是空,所以打出来字符串是空,数字是0. 谢谢回复,懂了。 zhumengyun 发表于 2014-8-11 18:26
谢谢回复,懂了。
已经解决的帖子请将帖子标记为已解决,谢谢合作哈。 好的,新手上路,请多多指教。
页:
[1]