zhumengyun 发表于 2014-8-11 16:46:35

c语言结构体指针初始化

#include
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 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.000000
wa: ppp. 98.000000
wa: ppp. 98.000000结果就正确了。
转播(0)回复(0)


elvo 发表于 2014-8-11 16:56:27

你自己调试一下,注意看内存,就明白了。。。

zhumengyun 发表于 2014-8-11 18:30:22

谢谢回复。
页: [1]
查看完整版本: c语言结构体指针初始化