struct stu { int num; float score; struct stu *next; } *h,*p1,*p2; p1=(struct stu *)malloc(sizeof(struct stu)); h=p1; p1=(struct stu *)malloc(sizeof(struct stu)); h.next=p1; p2=p1; p1=(struct stu *)malloc(sizeof(struct stu)); p2.next=p1; p2=p1;
如果我在h=p1处加上p2=p1那么h.next=p1是否可以不要,而改为p2.next=p1呢
如果我在h=p1处加上p2=p1那么h.next=p1是否可以不要,而改为p2.next=p1呢
追答是可以的,这里要清楚,指针只是用来存一个地址的,h=p1和p2=p1都是把新建的空间的地址进行赋值,但实际上,空间还是一个空间,就像你家只有一间房,只有一个门牌号,你把这个门牌号抄给多少人,都不会使你家的房子变多的,只不过这些人都能找到你家而已。所以当h和p2都指向同一个地址的时候,这两个做的是同一个操作