当前位置: 代码迷 >> C语言 >> 指向结构体的指针(已解决)
  详细解决方案

指向结构体的指针(已解决)

热度:86   发布时间:2007-11-05 13:29:16.0

弄清楚对应的类型先啦.
你要引用结构体的成员,那当然先得是这个结构体类型的了.


----------------解决方案--------------------------------------------------------
p=(struct stu*) student[0].name;这语句有问题
应该为p=&student[0];


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2007-11-5 13:27:49的发言:
你不看看你指针指向的是什么.
p=(struct stu*) student[0].name;//这句也错了,错的很严重
明显是错误的引用p->num

*p是struct stu 变量,那它就应该有这个成员呀,不是很明白


----------------解决方案--------------------------------------------------------
应该这样像12#写的样.你强制类型转换,但真正的指针类型是什么样子还是什么样子,你要移动就要看移动的长度.
----------------解决方案--------------------------------------------------------
以下是引用yqiong在2007-11-5 13:24:30的发言:
struct stu{
int num;
char name[20];
}student[3]={{1,"yqiong"},{2,"song"},{3,"li"}},*p;
main()
{stu *p=&student[0];
p=p+1;
printf("\n%d\n",p->num); /*输出的是28531,这什么意思呀?*/
printf("%d\n",sizeof(*p));//貌似也有问题,不知道你要测试什么
}


----------------解决方案--------------------------------------------------------
printf("%d\n",sizeof(*p));//貌似也有问题,不知道你要测试什么
*p为struct stu类型,测的就是结构体的长度,就是各成员长度之各呀
----------------解决方案--------------------------------------------------------

以下是引用yqiong在2007-11-5 13:31:58的发言:

*p是struct stu 变量,那它就应该有这个成员呀,不是很明白

你用了强制类型转换,虽然语法没什么错误,但逻辑上有错误,p此时的指针值是"yqiong"这个字符串的首地址,经过p=p+1后,p成为了一个野指针,指向了一个不确定的位置,最后p->num输出的也是不确定的值

[此贴子已经被作者于2007-11-5 13:47:58编辑过]


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2007-11-5 13:34:51的发言:
应该这样像12#写的样.你强制类型转换,但真正的指针类型是什么样子还是什么样子,你要移动就要看移动的长度
哦,大概明白了



----------------解决方案--------------------------------------------------------
以下是引用静思在2007-11-5 13:47:20的发言:

你用了强制类型转换,虽然语法没什么错误,但逻辑上有错误,p此时的指针值是"yqiong"这个字符串的首地址,经过p=p+1后,p成为了一个野指针指向了一个不确定的位置,最后p->num输出的也是不确定的值


当前p指向"yqiong"字符串首地址,p=p+1;此时p就指向"yqiong"字符串首地址后面的22个(结构体长度)字节地址.这样理解错误?这样算的话p有确定位置呀!但至于p->num输出确实不好说


----------------解决方案--------------------------------------------------------

你==,我写个东西给你看
,这里连个编译器都没有,汗啦.


----------------解决方案--------------------------------------------------------
  相关解决方案