靜態(tài)鏈表問題
p = p->next 改為p = p++為什么運行結(jié)果不正確,p += sizeof(a) 這樣也不正確求解
#include?<stdio.h> struct?weapon?{ ????int?price; ????int?atk; ????struct?weapon?*?next; }; int?main(){ ????struct?weapon?a,b,c,*head,*p; ????a.price?=?100; ????a.atk?=?100; ????b.price?=?200; ????b.atk?=?200; ????c.price?=?300; ????c.atk?=?300; ????head?=?&a; ????a.next?=?&b; ????b.next?=?&c; ????c.next?=?NULL; ????p?=?head; ????while(p?!=?NULL){ ????????printf("%d,%d\n",p->price,p->atk); ????????p?=?p->next; ????} }
2016-07-18
按我的理解結(jié)構(gòu)體指針傳遞的應(yīng)該是結(jié)構(gòu)體的首地址,你把p++后指向的是12個字節(jié)后的地址,并非下一個節(jié)點的首地址,而是下一個節(jié)點的指針地址,肯定無法讀出數(shù)據(jù),你可以試試在創(chuàng)建結(jié)構(gòu)體的時候?qū)⒅羔槍懺诘谝粋€位置,等同于結(jié)構(gòu)體首地址,應(yīng)該可以。
2016-07-18
沒錯啊,全復制編譯后可正常運行!
2016-07-18
按我的理解結(jié)構(gòu)體指針傳遞的應(yīng)該是結(jié)構(gòu)體的首地址,你把p++后指向的是12個字節(jié)后的地址,并非下一個節(jié)點的首地址,而是下一個節(jié)點的指針地址,肯定無法讀出數(shù)據(jù),你可以試試在創(chuàng)建結(jié)構(gòu)體的時候?qū)⒅羔槍懺诘谝粋€位置,等同于結(jié)構(gòu)體首地址,應(yīng)該可以。